De: Laurent longre Objet: Re: Somme suivant deux critères Date : samedi 3 juillet 1999 23:21 Eric RENAUD a écrit : > > Merci pour la réponse, mais à quoi servent les {} et pourquoi 3 arguments et > les 1... > J'aime bien comprendre et ne pas appliquer sans en comprendre le > fonctionnement Excuse-moi de ne pas avoir commenté, c'est juste parce que c'est un peu long à expliquer... Les accolades servent à définir des matrices de constantes. Par exemple, {1;2;3;4} définit une matrice (d'une seule colonne) contenant les valeurs 1, 2, 3 et 4. Ces matrices peuvent être utilisés dans les formules ou comme arguments de fonctions. Ainsi, =SOMME({1;2;3;4}*{5;6;7;8}) renvoie 1*5+2*6+3*7+4*8. Ces matrices de constantes peuvent être employés, entre autres, comme 1er argument de la fonction SOMME.SI (critères). =SOMME.SI(Plage;{">=12";"<=40";"<>"}) renvoie un tableau de 3 valeurs correspondantes aux trois critères de filtrage indiqués dans la matrice. Soit a = somme des éléments >= 12 (1ère valeur renvoyé, ">=12") b = somme des éléments <= 40 (2ème valeur, "<=40") c = somme des cellules non vides (3ème valeur, critère "<>") d = somme des élts < 12 e = somme des élts >= 12 et <= 40 (valeur recherché) f = somme des élts > 40 Alors a + b = (e + f) + (d + f) = d + e + f + f D'où a + b = c + f, et donc f = a + b - c Il faut donc ajouter les 2 premières valeurs renvoyés par SOMME.SI(Plage;{">=12";"<=40";"<>"}), et retrancher la troisième pour obtenir la somme recherché. Ceci est obtenu en multipliant les 3 valeurs renvoyés par cette formule par {1;1;-1} et en faisant la somme de la matrice résultante, d'où la formule finale: =SOMME(SOMME.SI(Plage;{">=12";"<=40";"<>"})*{1;1;-1}) Une formule analogue est également utilisable : =SOMME.SI(Plage;">=12")-SOMME.SI(Plage;">40") Elle est peut-être un peu plus compréhensible, mais a le défaut de nécessiter un remplacement du deuxième critère (<=40) par son complément (>40), d'où un risque d'erreur lors de la construction de la formule. Sinon, la formule matricielle "usuelle" est : =SOMME((Plage>=12)*(Plage<=40)*Plage) ... à valider par la combinaison de touches Ctrl-Maj-Entré. Mais ce type de formule (développant les résultats intermédiaires dans des matrices) est beaucoup moins rapidement calculé que SOMME.SI, qui est une fonction de type "compteur". Pour plus de détails sur le formules matricielles : http://perso.wanadoo.fr/longre/excel/pages/form_mat.htm Cordialement, Laurent