Sommeprod si case vide ou contient une chaine de caractère

Fermé
filblade - 6 août 2013 à 12:29
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 - 7 août 2013 à 10:19
Bonjour,

J'utilise actuellement une formule sommeprod.
Je teste sur une case pour savoir si elle est vide ou si elle contient "en cours"
A2:A1000={""} me renvoit bien les cases vides.
A2:A1000={"en cours"} me renvoit bien les cases avec "en cours"
A2:A1000={""."en cours"} par contre, ceci me renvoit #N/A

Pourquoi ?
Merci d'avance.

4 réponses

g Messages postés 1262 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 15 mai 2017 572
6 août 2013 à 12:59
Bonjour,

A2:A1000={""}+A2:A1000={"en cours"}

Cordialement.
0
effectivement, je l'avais remarqué. le soucis, c'est que je n'ai pas mis la totalité de ma formule.
Voici ma formule avec cette façon de faire :
=SOMMEPROD(('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"})*('S32 ingenierie'!A2:A1000={""})*('S32 ingenierie'!E2:E1000))+SOMMEPROD(('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"})*('S32 ingenierie'!A2:A1000={"en cours"})*('S32 ingenierie'!E2:E1000))

Je voulais simplifier un peu.
=SOMMEPROD(('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"})*('S32 ingenierie'!A2:A1000={""."en cours"})*('S32 ingenierie'!E2:E1000))

Mais ça ne marche pas comme ça, et je ne vois pas pourquoi.
0
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 1 054
6 août 2013 à 17:45
Bonjour,
Avec Sommeprod comme avec une matricielle classique on utilise l'opérateur + pour faire un OU.
Ça donnerait (à vérifier):
=SOMMEPROD((('S32 ingenierie'!F2:F1000="CREATION")+('S32 ingenierie'!F2:F1000="MUTATION")+('S32 ingenierie'!F2:F1000="ROUTAGE"))*(('S32 ingenierie'!A2:A1000="")+('S32 ingenierie'!A2:A1000="en cours"))*('S32 ingenierie'!E2:E1000))

L'utilisation d'une constante matricielle ( {"CREATION"."MUTATION"."ROUTAGE"} )sur un champ donne l'impression de fonctionner mais je ne suis sûr de rien!
=SOMMEPROD(('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"})*(('S32 ingenierie'!A2:A1000="")+('S32 ingenierie'!A2:A1000="en cours"))*('S32 ingenierie'!E2:E1000))
0
Dans ma formule, la partie ('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"}) fonctionne parfaitement.
Cette formule fonctionne : =SOMMEPROD(('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"})*('S32 ingenierie'!A2:A1000={""})*('S32 ingenierie'!E2:E1000))+SOMMEPROD(('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"})*('S32 ingenierie'!A2:A1000={"en cours"})*('S32 ingenierie'!E2:E1000))

Mais pas celle la : =SOMMEPROD(('S32 ingenierie'!F2:F1000={"CREATION"."MUTATION"."ROUTAGE"})*('S32 ingenierie'!A2:A1000={""."en cours"})*('S32 ingenierie'!E2:E1000))

Et je n'arrive pas a comprendre pourquoi.
0
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 1 054
7 août 2013 à 10:19
Bonjour,
Je ne vous dirai pas pourquoi parce que j'ai atteint là mon seuil d'incompétence.
Sur un fichier test j'ai vérifier que Sommeprod semble n'admettre qu'un seul champ avec une constante matricielle comme critère. L'erreur survient avec le deuxième champ.
On peut supposer qu'une des opérations sur les matrices élémentaires n'est pas correcte?
Si vous trouvez une explication n'hésitez pas à nous en faire part.
0