Sommeprod avec conditions Excel 2010

c.leduc12

XLDnaute Nouveau
Bonjour,

Je suis nouvelle sur les forums et donc je ne suis pas une habituée des ces sites.

Ma question aujourd'hui concerne la fonction sommeprod.
C'est une fonction qui est nouvelle pour moi.
J'ai essayer de l'utiliser comme ceci :

=SOMMEPROD((B2:B623=E2)*(1/(NB.SI(A2:A623,A2:A623))))

mais ça ne fonctionne pas

J'ai un fichier avec plusieurs livraisons sur différentes lignes avec différents code d'articles et quantités.
Cependant, la livraison peut se répété plusieurs fois.
Je veux connaitre le nombre de livraisons différentes (donc sans les doublons) avec comme critère les articles.

Le but à la fin étant de calculer une moyenne de quantité de produit par livraison.

J'ai joint un exemple avec 2 articles mais mon fichier réel en contient une centaine.
(en espérant que ça l'aie fonctionner)

Pour l'article 1 je sais qu'il y a 12 livraisons différentes (étaler sur 28 lignes) pour un total de 590 unités.
Je veux donc que le calcul soit 590/12 et non 590/28.

Est-ce qu'il y a une personne qui pourrais m'aider ?

Merci à l'avance :)
 

Pièces jointes

  • Sommeprod_Article.xlsx
    19.6 KB · Affichages: 52

c.leduc12

XLDnaute Nouveau
Re : Sommeprod avec conditions Excel 2010

Bonjour,

Merci, ce que tu as fait fonctionne.

Cependant pour le besoin que j'ai à en faire c'est un peu complexe à utiliser.
J'ai une centaine d'article et je dois faire des comparatif par mois.

Il faudrait donc que j'aie un sommaire de tous les articles et pas seulement aller chercher l'information en sélectionnant article par article.

Merci beaucoup pour l'astuce par contre.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Sommeprod avec conditions Excel 2010

Bonsoir c.leduc12 et bienvenue sur XLD :),

Un essai avec une formule matricielle à valider par la combinaison des trois touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée.

La formule est en G2; une fois validée par Ctrl+Maj+Entrée, elle peut être recopiée vers le bas.
VB:
=SOMME(N(FREQUENCE(SI($B$2:$B$777=E2;EQUIV($A$2:$A$777;$A$2:$A$777;0);"");SI($B$2:$B$777=E2;EQUIV($A$2:$A$777;$A$2:$A$777;0);""))>0))

Edit: bonsoir Denis132, gosselien.
 

Pièces jointes

  • c.leduc12-Sommeprod_Article-v1.xlsx
    20.7 KB · Affichages: 46
Dernière édition:

job75

XLDnaute Barbatruc
Re : Sommeprod avec conditions Excel 2010

Bonsoir c.leduc12, Denis132, gosselien, mapomme,

Si comme ici le tableau est trié sur la colonne B la formule en G2 est assez simple :

Code:
=SOMMEPROD(1/NB.SI(DECALER(A$1;EQUIV(E2;B:B;0)-1;;NB.SI(B:B;E2));DECALER(A$1;EQUIV(E2;B:B;0)-1;;NB.SI(B:B;E2))))
Fichier joint.

Bonne fin de soirée.
 

Pièces jointes

  • Sommeprod_Article(1).xlsx
    20.2 KB · Affichages: 36

job75

XLDnaute Barbatruc
Re : Sommeprod avec conditions Excel 2010

Re,

Si le tableau n'est pas trié la formule en G2 est plus simple mais matricielle :

Code:
=NB(LN(EQUIV(A$1:A$623;SI(B$1:B$623=E2;A$1:A$623);0)=LIGNE(A$1:A$623)))
A valider par Ctrl+Maj+Entrée.

Fichier (2).

Bonne nuit.
 

Pièces jointes

  • Sommeprod_Article(2).xlsx
    20.3 KB · Affichages: 43

job75

XLDnaute Barbatruc
Re : Sommeprod avec conditions Excel 2010

Bonjour le fil, le forum,

Complément pour un tableau non trié.

Si en colonne A les numéros sont toujours numériques on peut éviter la validation matricielle :

Code:
=SOMMEPROD(N(ESTNUM(LN(EQUIV(A$1:A$1000;(B$1:B$1000=E2)*A$1:A$1000;0)=LIGNE(A$1:A$1000)))))
Fichier (2 bis).

Bonne journée.
 

Pièces jointes

  • Sommeprod_Article(2 bis).xlsx
    20.3 KB · Affichages: 41

job75

XLDnaute Barbatruc
Re : Sommeprod avec conditions Excel 2010

Re,

J'ai mesuré les durées d'exécution de la formule en G2 :

- post #5 de mapomme (avec 623 au lieu de 777) => 10 millisecondes

- post #6 fichier (1) => 57 millisecondes

- posts #7 et #8 (avec 623 au lieu de 1000) => 4 millisecondes.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87