Somme.Si avec critères spéciaux

Bonjour à tous, je n'arrive absolument pas à me dépatouiller parmi toutes les formules d'Excel dans le cas précis que je vais vous exposer.

Mon problème est le suivant :

Après import de données externes, je me retrouve avec un tableau similaire à celui ci:

C D E F

5 ODC Mois Année Somme

6 Toto Janvier 2005 38000

7 Tata Janvier 2005 21000

8 Toto Février 2005 22000

9 Toto Janvier 2005 23000

10 Toto Janvier 2005 19000

Etc. pour une année variant entre 2005 et 2008, un mois variant entre janvier et décembre, et des ODC (origine du client) variées. Somme correspond au CA.

L'objectif étant de calculer mois par mois, année par année, la somme des CA de CHAQUE ODC.

Si, dans mon exemple, je veux calculer le chiffre d'affaire que représente Toto en janvier 2005, comment calculer, à l'aide d'une formule, par exemple en H5, la somme de la plage F6:F10000 (10000 étant pris à titre d'exemple) SEULEMENT pour les lignes pour lesquelles :

1) Dans la plage C6:C10000, la valeur "Toto" est présente.

2) Dans la plage D6:D10000, la valeur "Janvier" est présente.

3) Dans la plage E6:E10000, la valeur "2005" est présente.

J'ai bien réussi, à l'aide d'un simple si, à copier les sommes 1 à 1 dans une colonne en appliquant la formule incrémentée suivante

=Si(C6="Toto";Si(D6="Janvier";Si(E6="2005";F6;0);0);0)

Puis a calculer la somme de l'ensemble de cette colonne.

On peut donc dire que d'une certaine façon j'arrive à avoir ce que je veux, mais imaginez à quel point c'est peu lisible pour la personne qui visualisera le fichier...

J'espère avoir été le plus clair possible et j'espère que vous saurez m'aider. Je vous remercie déja par avance.

Julien.

Bonjour,

En H5 tu mets ceci --> =SOMMEPROD((C6:C10000="Toto")*(D6:D10000="janvier")*(E6:E10000=2005)*(F6:F9))

Amicalement

Dan

Parfait ca marche. Je te remercie mille fois....

Il me reste juste un petit détail à régler. Il semble que si une des cellules soit vide parmi les colonnes qui correspondent aux matrices, la formule ne fonctionne pas.

Le problème étant que je me base sur des données importées, je ne connais pas par avance le nombre d'entréees par colonne. J'ai donc appliqué ta formule en indiquant une fin de plage très élevée (50000) car je sais que tout au plus ca ne dépassera pas 45000 entrées, avec une marge, le nombre grandissant tous les mois.

Mais bon, c'est un détail après tout, et je veux pas abuser de tes compétences.

Merci encore !

Nad-Dan a écrit :

Bonjour,

En H5 tu mets ceci --> =SOMMEPROD((C6:C10000="Toto")*(D6:D10000="janvier")*(E6:E10000=2005)*(F6:F9))

Amicalement

Dan

J'aurais juste une petite question. Est-ce qu'il est possible de modifier la formule ci-dessus pour faire en sorte qu'a la place de 10000 je lui indique simplement le numéro de la cellule correspondant à la dernière ligne dans laquelle se trouve quelque chose ?

Merci par avance.

Bonjour

Il semble que si une des cellules soit vide parmi les colonnes qui correspondent aux matrices, la formule ne fonctionne pas.

1) La formule indiquée par Nad-Dan, ignore les cellules vides et donc fonctionne même si certaines cellules sont vides. (Une cellule vide ne contient rien)

Est-ce qu'il est possible de modifier la formule ci-dessus pour faire en sorte qu'a la place de 10000 je lui indique simplement le numéro de la cellule correspondant à la dernière ligne dans laquelle se trouve quelque chose ?

2) Pour éviter de modifier la formule selon le nombre d'entrées, tu peux définir un champ variable qui cale la formule sur le nombre de lignes du champ.

Exemple:

Le Nom ListODC référe à =Feuil1!$D:$D

Le nom ODC référe à =DECALER(Feuil1!$D$6;;;NBVAL(ListODC))

La formule devient:

=SOMMEPROD((ODC="Toto")*(DECALER(ODC;;1;)="Janvier")*(DECALER(ODC;;2;)=2005)*(DECALER(ODC;;3;)))

Exemple joint

https://www.excel-pratique.com/~files/doc/Somprod_Champ_Variable.xls

Cordialement

Je vous remercie pour vos compétences qui me sont vraiment très utiles.

Au plaisir.

Julien.

Rechercher des sujets similaires à "somme criteres speciaux"