OVH Cloud OVH Cloud

somme conditionnelle multi-critères

4 réponses
Avatar
Sylvain
Bonjour,

Je cherche à comprendre le fonctionnement de base de certaines fonctions qui
semblent pourtant simples. C'est pourquoi je me suis construit l'exemple
tout bête d'un tableau à 3 colonnes (année-colonneA, mois-B, montant
facture-C). Puis je cherche à calculer dans une cellule isolée la somme des
factures pour janvier 2004 par exemple. 3 formules me viennent à l'esprit :
{=SI(ET(A2:A12=2004;B2:B12=1);SOMME(C2:C12);0)}
{=SOMME(SI(ET(A2:A12=2004;B2:B12=1);C2:C12;0))}
{=SOMME(SI(A2:A12=2004;SI(B2:B12=1;C2:C12;0);0))}

Seule la dernière fonctionne. Quelqu'un pourrait-il m'aider à comprendre
pourquoi ?

Merci à tous

Sylvain Caillet

4 réponses

Avatar
Steph_D
Je cherche à comprendre le fonctionnement de base de certaines fonctions
qui

semblent pourtant simples. C'est pourquoi je me suis construit l'exemple
tout bête d'un tableau à 3 colonnes (année-colonneA, mois-B, montant
facture-C). Puis je cherche à calculer dans une cellule isolée la somme
des

factures pour janvier 2004 par exemple. 3 formules me viennent à l'esprit
:

{=SI(ET(A2:A12 04;B2:B12=1);SOMME(C2:C12);0)}
{=SOMME(SI(ET(A2:A12 04;B2:B12=1);C2:C12;0))}
{=SOMME(SI(A2:A12 04;SI(B2:B12=1;C2:C12;0);0))}




Bonjour,

Je crois qu'il n'est pas possible d'utiliser la fonction Somme comme ceci en
argument de formule matricielle (formule1), ainsi que les fonctions ET et OU
(formule2). Mais les pros ne devraient pas tardé à t'éclairer. Voici deux
solutions :
{=SOMME(SI((A2:A12 04)*(B2:B12=1)=1;C2:C12;0))}
ou
=SOMMEPROD((A2:A12 04)*(B2:B12=1)*(C2:C12))

Cordialement
Stéphane D

Avatar
AV
Pas de ET ou de OU dans les formules matricielles !
A remplacer par des tests logiques avec les opérateurs * ou/et + ou bien, comme
tu l'as fait, avec une série de SI
Pour ton exemple :
{=SOMME((A2:A12 04)*(B2:B12=1)*C2:C12)}
ou encore utiliser SOMMEPROD (validation non matricielle)
=SOMMEPROD((A2:A12 04)*(B2:B12=1);C2:C12)

NB : Dans ton cas, il n'est pas utile d'avoir un champ année et un champ mois !
Avec un seul champ avec des dates (des vraies) et un champ "Montants", la
formule deviendrait :
=SOMMEPROD((ANNEE(Dates) 04)*(MOIS(Dates)=1);Montants)

AV
Avatar
Philippe
Bonjour,

Moi aussi je galere pas mal quand je fais une formule matricielle :

1/ on n'en fait pas tous les jours (donc on a le temps d'oublier)
2/ Plusieurs formes sont tolérées =>difficile d'y trouver une logique

Alors je n'ai pas la prétention de t'apprendre quelque chose mais je te
donne juste ma recette en espérant t'aider. J'utilise une autre formule où je
trouve ma logique plus facilement :

{=SOMME((A2:A12 04)*(B2:B12=1)*(C2:C12))}

Ainsi, on retrouve facilement le calcul matriciel :

A1; B1; C1
A2; B2; C2
A3; C3; C3
...
Somme matricielle : A1*B1*C1+A2*B2*C2+A3*B3*C3 ...
Avec pour les colonnes A et B des conditions => A1, A2, A3, B1, B2, B3
prennent les valeurs 0 ou 1 suivant que le critère est reconnu ou pas.

Ainsi, si tu ne veux que le nombre et non la somme, tu fais :

{=SOMME((A2:A12 04)*(B2:B12=1))}

Voila, j'y ai trouvé une logique. Il y a d'autres formulations qui me
perdent, donc je reste à l'écoute de ton post intéressant pour m'améliorer.

Philippe.


Ainsi, dans l'argument somme





Bonjour,

Je cherche à comprendre le fonctionnement de base de certaines fonctions qui
semblent pourtant simples. C'est pourquoi je me suis construit l'exemple
tout bête d'un tableau à 3 colonnes (année-colonneA, mois-B, montant
facture-C). Puis je cherche à calculer dans une cellule isolée la somme des
factures pour janvier 2004 par exemple. 3 formules me viennent à l'esprit :
{=SI(ET(A2:A12 04;B2:B12=1);SOMME(C2:C12);0)}
{=SOMME(SI(ET(A2:A12 04;B2:B12=1);C2:C12;0))}
{=SOMME(SI(A2:A12 04;SI(B2:B12=1;C2:C12;0);0))}

Seule la dernière fonctionne. Quelqu'un pourrait-il m'aider à comprendre
pourquoi ?

Merci à tous

Sylvain Caillet





Avatar
Sylvain
Merci à tous, je crois j'y vois beaucoup plus clair !!

Sylvain
"Sylvain" a écrit dans le message de news:
4309c969$0$25060$
Bonjour,

Je cherche à comprendre le fonctionnement de base de certaines fonctions
qui semblent pourtant simples. C'est pourquoi je me suis construit
l'exemple tout bête d'un tableau à 3 colonnes (année-colonneA, mois-B,
montant facture-C). Puis je cherche à calculer dans une cellule isolée la
somme des factures pour janvier 2004 par exemple. 3 formules me viennent à
l'esprit :
{=SI(ET(A2:A12 04;B2:B12=1);SOMME(C2:C12);0)}
{=SOMME(SI(ET(A2:A12 04;B2:B12=1);C2:C12;0))}
{=SOMME(SI(A2:A12 04;SI(B2:B12=1;C2:C12;0);0))}

Seule la dernière fonctionne. Quelqu'un pourrait-il m'aider à comprendre
pourquoi ?

Merci à tous

Sylvain Caillet