A voir également:
- [Excel] Somme conditionnelle, plusieurs cond.
- Mise en forme conditionnelle excel - Guide
- Formule somme excel colonne - Guide
- Liste déroulante excel - Guide
- Somme si couleur excel - Guide
- Si et excel - Guide
2 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
1 juil. 2010 à 07:09
1 juil. 2010 à 07:09
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... ?
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
Modifié par eriiic le 1/07/2010 à 07:26
Modifié par eriiic le 1/07/2010 à 07:26
sommeprod marche bien, mais parfois il faut ajouter *1 selon tes données.
=sommeprod((...)*(...)*1)
Assure-toi de ne pas avoir de valeur 'texte' mélangée dans les 'numériques'
sinon il faudrait déposer un extrait de ton tableau sur cijoint.fr et coller ici le lien fourni
=sommeprod((...)*(...)*1)
Assure-toi de ne pas avoir de valeur 'texte' mélangée dans les 'numériques'
sinon il faudrait déposer un extrait de ton tableau sur cijoint.fr et coller ici le lien fourni
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.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 247
Modifié par eriiic le 1/07/2010 à 08:20
Modifié par eriiic le 1/07/2010 à 08:20
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