Formule matricielle avec fonction OU

cooldidi

XLDnaute Nouveau
Bonjour j'essaye de faire une somme conditionnée sur base d'un seul critère mais qui peut prendre deux valeurs.

En d'autres mots, fait la somme si le critère = "o" ou = "oui".

J'ai pas de soucis pour faire la formule au moyen d'un sommeprod par contre je cale sur la formule matricielle. Bizarrement Excel n'a pas trop l'air de comprendre ma fonction "OU" dans ma formule matricielle. Cf fichier exemple où à ma ligne 2, mon critère n'es pas rempli, mais dans mon résultat il m'a quand même additionné la valeur.

Quelqu'un sait d'où vient mon erreur merci.
 

Pièces jointes

  • MatricielFonctionOU.xls
    13.5 KB · Affichages: 141

abcd

XLDnaute Barbatruc
Re : Formule matricielle avec fonction OU

Bonjour,

En formule matricielle (et SOMMEPROD en est une) le OU devient +.
=SOMME((SI((B1:B3="o")+(B1:B3="oui");A1:A3))
le troisième argument de la fonction SI n'est pas nécessaire.

abcd
 

nolich

XLDnaute Occasionnel
Re : Formule matricielle avec fonction OU

Bonsoir cooldid, abcd, bonsoir à toutes et à tous,

La formule avec SOMMEPROD d'abcd fonctionne correctement, mais j'ai trouvé surprenant qu'on ne puisse arriver au même résultat avec ta formule matricielle ! :confused:

Alors, j'ai cherché et j'ai trouvé qu'on pouvait écrire cette formule matricielle ainsi :

Code:
=SOMME(SI(B1:B3="o";A1:A3;SI(B1:B3="oui";A1:A3;0)))

Ca ne résoud en rien ton problème, c'est juste un constat : le OU ne semble pas fonctionner dans ton exemple. Si un jour tu devines pourquoi, dis-le nous ; en tout cas ça m'intéresse.

Cordialement,
Lio

EDIT : J'avais écrit ET alors que c'était un OU !
 
Dernière édition:

nolich

XLDnaute Occasionnel
Re : Formule matricielle avec fonction OU

Re, et bonsoir à wilfried42,

cooldidi, le sentiment qu j'ai en voyant ta formule matricielle avec SOMME(SI(...;...;...)) est que la fonction vérifie s'il y a un "o" dans la zone B1:B3 et que, s'il n'y en a pas, elle vérifie s"il y a un "oui" dans cette même zone, et comme il y en a, elle comptabilise la valeur contenue dans A1:A3. Cela expliquerait le résultat de cette fonction SOMME(SI)).

Cordialement,
Lio
 

Raja

XLDnaute Accro
Re : Formule matricielle avec fonction OU

Bonsoir, Salut à tous,

C'est normal et logique. Prenons d'abord uniquement le résultat de la formule OU, il s'analyse comme ceci :

Le premier test => B1:B3="o" donne une matrice {VRAI;FAUX;FAUX}, et le deuxième test => B1:B3="oui" donne une matrice {FAUX;FAUX;VRAI}, ce qui donne un résultat final matriciel de la formule OU => {VRAI;FAUX;VRAI}, et souvenons-nous (logique booléenne) que dans une formule OU il suffit qu'il y ait une valeur de vérité (VRAI) pour qu'elle soit VRAI (nous avons plus qu'un).

Par conséquent, la formule SI effectue la partie de ce qui est VRAI à savoir la somme de la matrice A1:A3. Ouf je termine......

Alors que la formule matricielle suivante, validée par les touches CTRL + MAJ + ENTREE, donnera le résultat attendu :

Code:
=SOMME((B1:B3="o")+(B1:B3="oui")*(A1:A3))

PS : Juste un complément par rapport à ce qui était dit par abcd, en logique booléenne(calcul booléen) le ET est équivalent à * (multiplication) et OU est équivalent à + (addition), car voici les tables de vérité de ET et OU dans lesquelles VRAI et FAUX pourront être remplacés par 1 et 0.

Code:
ET *    VRAI	FAUX
VRAI	VRAI	FAUX
FAUX	FAUX	FAUX

Code:
OU +    VRAI    FAUX
VRAI	VRAI	VRAI
FAUX	VRAI	FAUX
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
857