Double condition

J

johnweb

Guest
Re-bonjour déjà

Dans un tableau, j'aimerais additionner des chiffres d'une colonne (col C p. ex) qui répondent à deux conditions (par exemple des noms ou chaînes de caractères dans les colonnes A et B).

J'ai essayé de combiner SOMME.SI et ET, mais sans succès.

Je demande donc votre aide.

Merci et bon début d'année.
 

Brigitte

XLDnaute Barbatruc
Bonjour, et bienvenue...

Merci pour tes voeux. A mon tour, je te souhaite une belle année 2006.

A mon avis, il te faut un SOMMEPROD, cher à Monique.

Sommeprod si tu as plusieurs arguments :
=SOMMEPROD((A1:A8=2)*(B1:B8='A');C1:C8)
si la plage de données (a1,a8) contient le chiffre '2' et la plage de données (b1,b8) contient la lettre 'A', faire la somme de la colonne c (c1, c8)

A B C D

1 A 500 Brigitte
5 B 600 Pierre
2 A 400 Caro
3 A 700 Laurent
5 A 800 Brigitte
2 A 600 Pierre
2 D 300 Caro
2 S 200 Laurent

1000

Voilà pour l'exemple... Bon courage.

Message édité par: Brigitte, à: 02/01/2006 15:03
 
J

johnweb

Guest
Merci Brigitte pour cette réponse rapide.

J'ai essayé cette formule, mais je trouve zéro.

Est-ce une question de matrice. Comme je n'ai pas compris l'intérêt de ces formules avec accolade, je ne les emploie pas et ne sais pas les utiliser.

Autre chose: j'aimerais obtenir 1000 (= 400+600)et pas le total de toute la colonne. Est-ce que ta formule me donnera ce résultat?

Merci de ton appui.
 

Brigitte

XLDnaute Barbatruc
Re,


Je te joins un petit fichier. En effet 'ma' formule fait bien le calcul de ceux qui ont à la fois 2 en colonne A et A en colonne B....

Quant aux formules dites 'matricielles' à savoir avec accolades, Jean Marie, un spécialiste, a beau avoir perdu pas mal de cheveux à avoir essayé en vain de me les expliquer, le peu que j'en ai retenu est qu'elles évitent les calculs ou tableaux intermédiaires.. Mais alors je n'ai jamais compris comment faire... Faudrait qu'on me montre 'en vrai'.

Bon courage [file name=Johnweb.zip size=5689]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Johnweb.zip[/file]

Message édité par: Brigitte, à: 02/01/2006 16:31
 

Pièces jointes

  • Johnweb.zip
    5.6 KB · Affichages: 24

Brigitte

XLDnaute Barbatruc
Re,

Tant mieux si j'ai pu t'aider. C'est vrai qu'il faut prendre l'habitude de mettre le signe 'dollar' devant les cellules pour figer les plages notamment de recherche.

Sinon je viens de contacter la 'prêtresse' du SOMMEPROD, j'ai nommé Monique pour savoir comment il se fait qu'il faille mettre des guillemets quand on veut qu'un seul des critères soit rempli au moins. Ca m'échappe totalement, n'empêche que si je les mets pas, ca marche pas.

Monique (ou un autre Dieu du Sommeprod), si tu nous entends ....

=SOMMEPROD(($A$2:$A$9=2)*($B$2:$B$9='A')*$C$2:$C$9)
Mais
=SOMMEPROD(($A$2:$A$9='2')+($B$2:$B$9='A')*$C$2:$C$9)

Est-ce normal ? Je m'arrache les cheveux... Merci d'avance...

Message édité par: Brigitte, à: 02/01/2006 16:49
 

Gael

XLDnaute Barbatruc
Bonjour Johnweb, bonjour Brigitte, bonjour Pascal, bonjour André,

En reprenant l'exemple:

1 A 500
5 B 600
2 A 400
3 A 700
5 A 800
2 A 600
2 D 300
2 S 200

Si tu veux obtenir la somme des lignes avec A ou 2, tu devrais obtenir 3500 et non pas 3000 qui correspond à toutes les lignes sauf la 2ème.

Comme André l'a expliqué, si tu mets des ', c'est pour indiquer un texte. Dans ta formule lorsque tu mets des ', tu obtiens un total de 3000, tout simplement parce qu'il n'y a aucune ligne égale au texte '2' et tu ne prends en fait que les 'A', soit 3000.

Si tu enlèves les ', tu vas trouver 4500 ce qui est supérieur au total général parceque les lignes qui comprennent à la fois 2 et A sont comptées 2 fois (400 et 600=1000).

Pour éviter ça, il faut enlever ces lignes ce qui donnerait la formule suivante:

=SOMMEPROD((((A2:A9=2)+(B2:B9='A'))-((A2:A9=2)*(B2:B9='A')))*C2:C9)

cela se produit lorsque le '+' est utilisé dans 2 colonnes différentes et que les 2 conditions peuvent être présentes ensemble.

Je ne suis pas sûr que tout cela soit très clair mais pour moi, c'est à peu près ça.

@+

Gael
 

Brigitte

XLDnaute Barbatruc
Bonsoir,


Non André, je viens de vérifier. En fait, le résultat me renvoit 3004 alors que cela devrait être 3000. Tout se passe comme si cela ajoutait 4...

Je ne comprends pas. Mais cela se passe uniquement avec la deuxième formule de SOMMEPROD.

Mais merci Ândré !
 

Brigitte

XLDnaute Barbatruc
Ouh la la Gaël, j'avais même pas vu que mon résultat était faux.

Ceci étant, ca me donne 3004 et non 4500. C'est à devenir fou ou folle.

Je te remercie, ainsi qu'Ândré, de t'être penché sur mon exemple. Je comprends un peu, mais c'est dur...

En revanche, heureusement que Johnweb avait besoin surtout de la première formule.

Bisous et merci.
 

Gael

XLDnaute Barbatruc
Re,

C'est parcequ'il te manque une prenthèse. Ta formule:

=SOMMEPROD((A2:A9=2)+(B2:B9='A')*C2:C9)

Va faire A2:A9=2 ce qui donne 4 puisqu'il y a 4 lignes qui contiennent un 2.

(B2:B9='A')*(C2:C9)=3000 ce qui fait 3004.

En fait il faut écrire:

=SOMMEPROD(((A2:A9=2)+(B2:B9='A'))*C2:C9)

ce qui donnera 4500.

@+

Gael
 

Brigitte

XLDnaute Barbatruc
Bonjour et merci Gaël,

Juste une dernière chose. Dans le fichier que j'ai posté (et pour lequel donc la formule 2 est fausse : formule qui fait la somme si au moins un critère est rempli), j'ai mis un exemple que j'avais trouvé sur le forum (en onglet 2) et là tout se passe bien (cellule E8), pas besoin d'enlever les lignes comme tu me le conseilles là...

Pourrais-tu regarder et me dire la différence ? Je suis un peu (bcp) paumée...

Merci d'avance même si tu n'as pas le temps de le faire.

Bisous
 

Gael

XLDnaute Barbatruc
Bonjour Brigitte, bonjour à tous,

Si tu me parles bien de la feuille 'Sommeprodexemple' et du résultat de la cellule E8 (=241), je pense que tu n'es pas encore bien réveillée ce matin...

Le total des valeurs est de 200 et tu devrais éliminer la ligne qui contient seulement 'B' donc la valeur 9 et trouver 191 (200-9).

A ces 191 ta formule a bien ajouté les lignes 2 et 6 qui contiennent à la fois 'A' et 'OK' avec les valeurs de 40 et 10.

191+40+10=241

Ce sont ces lignes qu'il faudrait éliminer en ajoutant dans la formule:

...-((B2:B10='A')*(C2:C10='OK'))...

Bonne journée.

Gael
 

Brigitte

XLDnaute Barbatruc
Un seul mot, Gaël : MERCI...


J'avais gardé cette feuille 'sommeprod exemple' que j'avais trouvée sur le forum, mais j'avais dû mal recopier... Pour ca que depuis le début, je bouine...


Du coup, je reposte le fichier pour Johnweb, même si il est déjà loin... pour que ce soit propre (enfin j'espère). [file name=Johnweb_20060103134635.zip size=6729]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Johnweb_20060103134635.zip[/file]
 

Pièces jointes

  • Johnweb_20060103134635.zip
    6.6 KB · Affichages: 8

Discussions similaires

Statistiques des forums

Discussions
312 752
Messages
2 091 658
Membres
105 036
dernier inscrit
Jeromelemaire