[Excel] formule sommeprod : problème

Bonjour les gens,

J'ai découvert tout récemment les possibilités offertes par la formule sommeprod ... qui s'avère monstrueusement efficace!!!
Mais ce matin je tombe sur un os. J'ai des difficultés pour assorcier mon sommeprod avec d'autres frormules comme NB.SI.

Voilà j'ai une série de données se présentant de la manière suivante:

Date Matière Coloris Délais de Prod
t1 M1 C1 D1
t2 M2 C2 D2
. . . .
tn Mn Cn Dn

Je me suis mis en tête de calculer le délais moyen de production (colonne D) entre deux dates (disons t2 et t5)en fonction d'une matière et d'un coloris donnés (disons M1 et C1). En avant pour sommeprod!!!

Ca me donne la formule:

=sommeprod(D1:Dn*(M1:M7=M1)*(C1*Cn=C1)*(t1:tn>=t2)-sommeprod(D1:Dn*(M1:M7=M1)*(C1*Cn=C1)*(t1:tn>=t5) /

(nb.si((C1:Cn=C1)*(M1:Mn=M1)*(t1:tn>=t2);D1:Dn)-nb.si(nb.si((C1:Cn=C1)*(M1:Mn=M1)*(t1:tn>=t5;D1:Dn)

Excel me marque "nombre insuffisant d'arguments pour cette fonction"..... Quelqu'un a-t-il une idée?

5 réponses

  1. Bonjour à tous,
    On ne peut qu'être d'accord avec Vaucluse, cependant quand on ajoute les champs matière et coloris qui ne sont pas numériques il faut ajouter un "*1" dans le deuxième Sommeprod.
    =SOMMEPROD((C1:Cn=$C$1)*(M1:Mn=$M$1)*(T1:Tn>=$T$2)*(T1:Tn>=$T$5)(D1:Dn))/SOMMEPROD((C1:Cn=$C$1)*(M1:Mn=$M$1)*(T1:Tn>=$T$2)*(T1:Tn>=$T$5)*1)
    sous réserve de vérification.
    1. Contributeur
      ce qui revient à prendre la solution que j'avais proposé ?
    2. Contributeur
      Bonjour tous
      je ne crois pas Tontong.
      Lorsque SOMMEPROD compte un nombre de cellules sans faire d'addition de montant dans un ou plusieurs champ avec plusieurs conditions différentes, il n'est pas utile de *1 sauf pour "assumer" Ceci que les champs soient textes ou num.
      Ce n'est que lorsqu'il n'y a qu'une SOMMEPROD nécessitant une multiplication,
      soit par exemple dans un champ de valeur A1:A100 le nombre de valeur comprise entre 50 et 60 s'écrit
      =SOMMEPROD(A1:A100>=Date MINI)*(A1:A100=)<Date maxi)) sans le *1
      par contre on ne peut pas écrire:
      =SOMMEPROD(A1:A100>=Date mini)
      et là il est nécessaire d'écrire:
      =SOMMEPROD((A1:A100=>Date mini)*1)

      pour complément, voir ici:
      http://www.cijoint.fr/cjlink.php?file=cj201005/cij0U3o3oO.xls

      Michel: je ne trouve pas ta proposition dans ce fil? ?

      Crdlmnt

      :
    3. Contributeur
      Voir "afficher tous les commentaires" dans la 2° réponse

      Pas très pratique ce double système: commentaires et j'ai une réponse
    4. Contributeur
      Effectivement, ça saute pas aux yeux.
      Vu merci!
    5. Merci Vaucluse pour cette rectification,j'essaye d'en prendre bonne note mais pour plus de sécurité je stocke l'excellent fichier joint.
      En résumé Vrai=Vrai Vrai*Vrai=1 Vrai+Vrai=2
      Merci encore.

      Ps: Je n'avais pas vu non plus le commentaire de michel m.
  2. Contributeur
    Bonjour
    essayez
    =SOMMEPROD((Champ date=>cell date mini)*(champ date <= date maxi);champ montant) /SOMMEPROD((Champ date>=cell date mini)*(champ date<=Cell maxi))
    si vous mettez directement les dates dans les formules écrivez les entre guillemets:
    "8/5/2010" par exemple
    1. =(MOYENNE.SI.ENS(D1:Dn;C1:Cn;$C$1;M1:Mn;$M$1;T1:Tn;>=$T$2))-(MOUENNE.SI.ENS(.......................................................;T1:Tn;>=$$5)))
      1. Oui mais ca va me calculer juste une différence de moyenne....
    2. Je viens de tester et ca marche. Mais ca ne me donne la somme de C1:Cn..
      Je voudrais la moyenne.

      En fait c est au niveau de la formule nb.si que ca semble poser probleme. La formule est-elle bien agencée?
      1. Effectivement! Et ca marche! Je ne sais pas où je m'étais trompé. Merci à toi.
      2. Petite question: Comment faire pour que la formule moyenne.si ne calcule la moyenne qu'entre 2 dates et non pas juste antérieure à une en particulier?
      3. C'est bon j'ai trouvé.. Merci encore.
    3. bonjour;
      testez cette formule:
      =(SOMMEPROD((C1:Cn=$C$1)*(M1:Mn=$M$1)*(T1:Tn>=$T$2)*(D1:Dn))-SOMMEPROD(...................................................*(T1:Tn>=$T$5)*(D1:Dn)))