[Excel] Somme conditionnelle, plusieurs cond.
Blourte
-
Blourte -
Blourte -
Bonjour,
J'aimerais faire une somme conditionnelle avec plusieurs conditions, mais je n'y parviens pas. J'ai l'impression que ça n'est pas possible sans passer par des étapes intermédiaires, est-ce vrai ?
Voici ma formule :
=SUM( IF(BC55:BC2010=$D$16,1,0) * IF(BA55:BA2010=1,1,0) * AT55:AT2010 )
En gros je veux sommer la colonne AT, dans le cas ou BC vaut $D$16 et BA vaut 1.
Merci d'avance pour votre aide !
# Excel 2003 Eng.
J'aimerais faire une somme conditionnelle avec plusieurs conditions, mais je n'y parviens pas. J'ai l'impression que ça n'est pas possible sans passer par des étapes intermédiaires, est-ce vrai ?
Voici ma formule :
=SUM( IF(BC55:BC2010=$D$16,1,0) * IF(BA55:BA2010=1,1,0) * AT55:AT2010 )
En gros je veux sommer la colonne AT, dans le cas ou BC vaut $D$16 et BA vaut 1.
Merci d'avance pour votre aide !
# Excel 2003 Eng.
A voir également:
- [Excel] Somme conditionnelle, plusieurs cond.
- Mise en forme conditionnelle excel - Guide
- Somme de plusieurs cellules excel - Guide
- Liste déroulante excel - Guide
- Excel liste déroulante conditionnelle - Guide
- Somme si couleur excel - Guide
2 réponses
Bonjour,
Tu n'étais pas loin.
Ta formule devrait marcher mais tu travailles sur des matrices, il faut valider en matriciel :
cad avec ctrl+shift+entrée (avec le curseur dans la zone d'édition).
Elle doit s'entourer de { }
Sinon tu as sommeprod() plus pratique car matricielle en validant normalement :
=sommeprod((BC55:BC2010=$D$16) * (BA55:BA2010=1) * (AT55:AT2010))
eric
Tu n'étais pas loin.
Ta formule devrait marcher mais tu travailles sur des matrices, il faut valider en matriciel :
cad avec ctrl+shift+entrée (avec le curseur dans la zone d'édition).
Elle doit s'entourer de { }
Sinon tu as sommeprod() plus pratique car matricielle en validant normalement :
=sommeprod((BC55:BC2010=$D$16) * (BA55:BA2010=1) * (AT55:AT2010))
eric
Hello eric,
Merci pour ta réponse. Néanmoins, les 2 possibilités m'affichent #Value!
=SUMPRODUCT((BC55:BC2010=$D$16)*(BA55:BA2010=1)*(AT55:AT2010))
=SUM(IF(BC55:BC2010=$D$16,1,0)*IF(BA55:BA2010=1,1,0)*AT55:AT2010)
que je les valide normalement ou avec CTRL+SHIFT+ENTER.
Pourtant dans une autre case de mon fichier, cette formule fonctionne parfaitement :
=SUM(IF(BA55:BA2010=$D$16,AT55:AT2010)) (validée avec CTRL SHIFT ENTER)
Bref, je dois avoir la mauvaise syntaxe... ?
Merci pour ta réponse. Néanmoins, les 2 possibilités m'affichent #Value!
=SUMPRODUCT((BC55:BC2010=$D$16)*(BA55:BA2010=1)*(AT55:AT2010))
=SUM(IF(BC55:BC2010=$D$16,1,0)*IF(BA55:BA2010=1,1,0)*AT55:AT2010)
que je les valide normalement ou avec CTRL+SHIFT+ENTER.
Pourtant dans une autre case de mon fichier, cette formule fonctionne parfaitement :
=SUM(IF(BA55:BA2010=$D$16,AT55:AT2010)) (validée avec CTRL SHIFT ENTER)
Bref, je dois avoir la mauvaise syntaxe... ?
Bon j'ai rajouté un 1, aucun changement.
En ce qui concerne le format des données :
- La colonne BA contient des formules IF, avec pour résultat : "" ou alors une clé type 1234
- La colonne BC contient des VLOOKUP, avec pour résultat : 1 ou 0 ou #N/A
- La colonne AT (celle qu'on somme) contient des IF, avec : "" ou une valeur.
Niveau format... j'ai tout repassé en général. Ca ne fonctionne pas.
J'ai essayé de copier/coller en valeur les 3 colonnes, la formule ne fonctionne toujours pas.
En ce qui concerne le format des données :
- La colonne BA contient des formules IF, avec pour résultat : "" ou alors une clé type 1234
- La colonne BC contient des VLOOKUP, avec pour résultat : 1 ou 0 ou #N/A
- La colonne AT (celle qu'on somme) contient des IF, avec : "" ou une valeur.
Niveau format... j'ai tout repassé en général. Ca ne fonctionne pas.
J'ai essayé de copier/coller en valeur les 3 colonnes, la formule ne fonctionne toujours pas.
Tu ne peux pas avoir de valeur texte dans une matrice pour que ça marche...
Soit tu remplaces "" par 0, soit tu le traites par un si dans le sommeprod()
La fin devient donc :
=sommeprod(...*(si(AT55:AT2010="",0,AT55:AT2010)))
mais le si() n'étant pas matriciel il faudra valider le sommeprod en matriciel.
Et ton #NA risque de remonter aussi... Si c'est le cas soit mettre un 0, soit le traiter dans le sommeprod() avec si(estna(...),0,test)
Ou bien avec esterreur() pour éliminer tous les codes d'erreur
edit : modification de parenthèses
Soit tu remplaces "" par 0, soit tu le traites par un si dans le sommeprod()
La fin devient donc :
=sommeprod(...*(si(AT55:AT2010="",0,AT55:AT2010)))
mais le si() n'étant pas matriciel il faudra valider le sommeprod en matriciel.
Et ton #NA risque de remonter aussi... Si c'est le cas soit mettre un 0, soit le traiter dans le sommeprod() avec si(estna(...),0,test)
Ou bien avec esterreur() pour éliminer tous les codes d'erreur
edit : modification de parenthèses