Maitrise de la formule matricielle

Résolu/Fermé
Maureen - Modifié par Maureen le 3/08/2011 à 11:46
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 3 août 2011 à 16:25
Bonjour,

Je tente de me dépatouiller sur excel avec la formule matricielle mais j'ai quelques soucis. Je tente de faire une fonction pour faire ceci :

Si (X est plus grand que 1.2 ET Y est plus grand que 1.2) ET/OU que Z est plus grand que 1.5, alors additionner la colonne A.

Je l'ai noté ainsi :
{SOMME(colonne A*((colonne x>1.2)*(colonne y>1.2))+(colonne z>1.5)}

Mais ça ne donne pas le bon résultat ! Est-ce que quelqu'un peut m'aider ?

Merci d'avance :)

Maureen

A voir également:

3 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 3/08/2011 à 12:58
Bonjour à tous

Je reprends la syntaxe utilisée par Maureen

1/ Si la dernière condition est un OU voici la bonne formulation :

En matriciel

{=SOMME(colonne A *( colonne x>1.2)*( colonne y>1.2)*( colonne z <=1.5)+ colonne A*( colonne z>1.5)) }

Avec sommeprod qui est directement matriciel comme le précise eriiic

=SOMMEPROD(colonne A *( colonne x>1.2)*( colonne y>1.2)*( colonne z <=1.5)+ colonne A*( colonne z>1.5))

2/ Si la dernière condition est un ET :

{=SOMME(colonne A *( colonne x>1.2)*( colonne y>1.2) *( colonne z>1.5)) }

Ou avec sommeprod :

=SOMMEPROD(colonne A *( colonne x>1.2)*( colonne y>1.2) *( colonne z>1.5))

A+

Cordialement,
1
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
3 août 2011 à 12:17
Forcément que ça ne donne rien ;-)

Commençons par le commencement: quel est l'objectif ? Et reformulons ton problème. D'après ce qu'on lit:
Si (X est plus grand que 1.2 ET Y est plus grand que 1.2) ET/OU que Z est plus grand que 1.5, alors additionner la colonne A. 


Que représentent X, Y et Z ? Des vecteurs comprenant des valeur X1, X2,... Y1,Y2,... Z1,Z2,....?
Que veut dire ton test "si X > 1.2" : est-ce que ce sont toutes les valeurs de "X" ? Au moins une ? ou alors tu veux additionner tous les X dont la valeur est > 1.2 ?
Que signifie "alors additionner la colonne A" ? est-ce que ça veut dire que tu veux additionner TOUTES les valeurs de A, ou seulement les A1, A2,... pour lesquels le test est positif ?

Conclusion: merci de bien expliquer ton objectif :-)
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 3/08/2011 à 12:32
Bonjour,

J'ajouterai de bien préciser le ET/OU
Soit c'est ET, soit c'est OU, le résultat sera totalement différent...

Si c'est ET : ça sera les 2 premières condition + la 3ème (auquel cas les parenthèses ne servent plus donc je penche sur l'interprétation suivante)
Si c'est OU : ça sera les 2 premières conditions réunies OU la 3ème seule

Quoiqu'il en soit la réponse sera sommeprod() qui est (auto)matricielle et ne nécessite pas de validation par shift+ctrl+entrée

eric
0
Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 587
3 août 2011 à 12:32
Je ne peux qu'être d'accord !
0
Merci de vos réponses, je vais essayer d'être plus claire ! Autant expliquer immédiatement ce que je cherche à faire. Si ça se trouve la formule matricielle n'est pas si pertinente...

Je veux placer des objets sur des palettes. Pour prévoir la quantité de palettes, j'ai besoin de connaître la surface occupée par ces objets. Les objets qui iront sur ces palettes doivent avoir une longueur et une largeur supérieures à 1.2m ou une hauteur supérieure à 1.5m.
Les plateaux des étagères font 1.2m sur 1.2m pour 1.5m de hauteur maximum. Donc, je veux additionner la surface occupée par les objets qui ont une longueur et une largeur inférieures à 1.2m ou qui ont une hauteur inférieure à 1.5m

Il y a donc deux critères : La longueur/largeur et la hauteur. Si l'une des deux conditions est remplie, excel calcule la surface occupée. Mais si les deux conditions sont remplies, excel doit aussi calculer la surface occupée.

Dont mon ET/OU dans mon premier énoncé... car pour calculer la surface d'un objet, ce dernier peut remplir soit l'un des deux critères (ou), soit les deux en même temps (et).

Comme il y a beaucoup d'objets, les données sont par colonne et les objets sur les lignes.
Colonne x = longueur
Colonne y = largeur
Colonne z = hauteur
Colonne A = surface

Est-ce plus claire ainsi ?




Merci beaucoup pilas31, ta correction a réussi !
Mais je ne comprends pas la logique du calcul. Pourquoi cette syntaxe correspond-elle à ce que j'appelais et/ou ?
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 3/08/2011 à 14:25
ça marche tout simplement parce que je pense que ce que tu appelles ET/OU c'est un OU (de toute façon il n'y a que deux opérateurs de comparaison en logique et des combinaisons de ces deux opérateurs).

donc la formule calcule la chose suivante :
La somme des surfaces de tous ceux qui ont (la longueur et la largeur supérieure à 1,2) bien que la hauteur soit inférieure ou égale à 1,5
Et on ajoute la surface ceux qui on une hauteur supérieure à 1,5 quelle que soit la longueur et la largeur.


Pour être plus précis, ta formule initiale donnait la somme des surfaces de ceux dont la longueur et la largeur est supérieur à 1,20 et ajoutait le nombre de ceux dont la hauteur est supérieur à 1,5 d'ou le résultat curieux.
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
Modifié par pilas31 le 3/08/2011 à 14:35
Je viens de lire ton problème.

Donc si les objets sont assez "petits" ils vont sur des étagères sinon il vont sur des palettes c'est ça ?
Ils peuvent aller sur les étagères si la hauteur est inférieure à 1,5 ça c'est ok mais aussi si seulement l'une des deux autres dimension est inférieure à 1,2 .

Pardon mais je crois que je n'ai pas compris ton problème et je crains que la formule ne corresponde pas à ce que tu cherche.....
0
Les objets petits vont effectivement sur des étagères. Mais c'est la longueur ET la largeur qui doivent chacune être inférieures à 1.2m. Parce que si c'est seulement l'un des deux, il suffit de tourner l'objet pour qu'il entre tout de même sur l'étagère.

Je viens de relire mon deuxième énoncé et le passage
"Les plateaux des étagères font 1.2m sur 1.2m pour 1.5m de hauteur maximum. Donc, je veux additionner la surface occupée par les objets qui ont une longueur et une largeur inférieures à 1.2m ou qui ont une hauteur inférieure à 1.5m"
porte à confusion, je l'admets. Ce que je veux calculer, c'est bien la surface des objets sur palettes et non pas sur étagères (bien que le calcul de l'un serve le calcul de l'autre).

La formule est donc juste, n'est-ce pas ?

J'ai bien compris tes précisions et appréhende mieux ce calcul ! Merci beaucoup !
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
3 août 2011 à 15:34
Donc à priori oui, la formule donne bien la surface cumulées des objets qui doivent aller sur des palettes.

Si tu estime que ton problème est résolu, dis moi le et je passe la discussion à résolue....
0
Oui mon problème est résolu :)

Encore merci !
0