OVH Cloud OVH Cloud

Formule matricielle

6 réponses
Avatar
martine
Ma colonne A contient des cellules r=E9pondant =E0 une=20
condition 1, ma colonne B contient des cellules r=E9pondant=20
=E0 une condition 2, je souhaite faire la somme de la=20
colonne E uniquement pour les lignes dont la colonne A et=20
la colonne B correspondent =E0 mes conditions.
J'ai =E9crit :
{=3DSOMME(SI(ET(A2:A92=3D"T");(B2:B92=3D1));E2:E92;0)}

R=E9sultat le calcul s'effectue sur toutes les lignes de la=20
plage. Mes conditions ne sont pas prises en compte pour ce=20
calcul.

Quelqu'un a-t-il une id=E9e d'o=F9 vient le probl=E8me et=20
comment je peux m'en sortir.

Merci d'avance de votre aide.

6 réponses

Avatar
Denis Michon
Bonjour Martine,

Tu y étais presque :

Validation matricielle Maj+Ctrl + Enter
=SOMME(SI((A2:A92="T")*(B2:B92=1);E2:E92;0))


Salutations!



"martine" a écrit dans le message de news:08f401c3b820$302d3840$
Ma colonne A contient des cellules répondant à une
condition 1, ma colonne B contient des cellules répondant
à une condition 2, je souhaite faire la somme de la
colonne E uniquement pour les lignes dont la colonne A et
la colonne B correspondent à mes conditions.
{=SOMME(SI(ET(A2:A92="T");(B2:B92=1));E2:E92;0)}

Résultat le calcul s'effectue sur toutes les lignes de la
plage. Mes conditions ne sont pas prises en compte pour ce
calcul.

Quelqu'un a-t-il une idée d'où vient le problème et
comment je peux m'en sortir.

Merci d'avance de votre aide.
Avatar
Ellimac
Bonjour,

Sans matricielle :
SOMMEPROD((A2:A92="T")*(B2:B92=1)* E2:E92)

Camille

-----Message d'origine-----
Ma colonne A contient des cellules répondant à une
condition 1, ma colonne B contient des cellules répondant
à une condition 2, je souhaite faire la somme de la
colonne E uniquement pour les lignes dont la colonne A et
la colonne B correspondent à mes conditions.
{=SOMME(SI(ET(A2:A92="T");(B2:B92=1));E2:E92;0)}

Résultat le calcul s'effectue sur toutes les lignes de la
plage. Mes conditions ne sont pas prises en compte pour
ce

calcul.

Quelqu'un a-t-il une idée d'où vient le problème et
comment je peux m'en sortir.

Merci d'avance de votre aide.
.



Avatar
MAZAS Bernard
Salut martine

"martine" a écrit dans le message de
news:08f401c3b820$302d3840$

Quelqu'un a-t-il une idée d'où vient le problème ?


Ton problème vient de l'utilisation du ET() : lorsque tu écris
ET(A2:A92="T");(B2:B92=1)), Excel ne te renvoie pas un tableau de 91
valeurs, comme tu pourrais t'y attendre, mais une seule valeur logique, qui
est la conjonction de 2x91 conditions (dans l'exemple, cette valeur est VRAI
dans le seul cas où toutes tes cellules de A2:A92 sont égales à "T" et
toutes celles de B2:B92 égales à 1).

On peut résumer ça en disant que les fonctions logiques ET(), OU(), etc sont
des "tueuses de matrices". Il faut utiliser à la place * et +, comme le font
Denis et Camille..

Bernard

Avatar
Daniel.M
Salut Bernard,

On peut résumer ça en disant que les fonctions logiques ET(), OU(), etc sont
des "tueuses de matrices". Il faut utiliser à la place * et +, comme le font
Denis et Camille..


C'est bien vrai. À quand une petite série de fonctions NATIVES et non-scalaires:
LiMAX(), LiMIN(), LiET(), LiOU() qui retournent une série de lignes (le max de
chaque ligne, le min de ...)

On peut toujours contourner (formules plus compliquées) ou utiliser VBA (plus
lent!) mais je m'égare.

Salutations,

Daniel M.

Avatar
MAZAS Bernard
Salut Daniel

"Daniel.M" a écrit dans le message de
news:

C'est bien vrai. À quand une petite série de fonctions NATIVES et
non-scalaires:

LiMAX(), LiMIN(), LiET(), LiOU() qui retournent une série de lignes (le
max de

chaque ligne, le min de ...)


Oui, cela rendrait les formules plus lisibles.

Tu parles de fonctions natives. ET() et OU() n'en sont pas ?

Bernard

Avatar
Daniel.M
Tu parles de fonctions natives. ET() et OU() n'en sont pas ?



Oui, absolument.
Mais LiOU() et LiET() n'en sont pas. ;-(
Dans un monde idéal, ces nouvelles fonctions existeraient et seraient présentes
dans Excel (Elles ne feraient pas partie d'un XLA ou des des macros
complémentaires).

Salutations,

Daniel M.