Microsoft 365 SOMMEPROD

Excelée

XLDnaute Junior
Bonjour à tous,
j'ai un soucis avec une formule SOMMEPROD.
J'ai essayé plusieurs méthodes en vain.
Je souhaite obtenir la somme en fonction d'un critère et inf ou égale à une date.

=SOMMEPROD(Tableau1[Qualité de meule]="18 PJ")*Tableau1[Date]<=DATE("2020";"07";"01")*Tableau1[nbre de meule]
 

Pièces jointes

  • Classeur5.xlsx
    64 KB · Affichages: 8

AtTheOne

XLDnaute Impliqué
Supporter XLD
Re...
L'erreur ne vient pas de la formule mais de données dans ton tableau
DateCoopN° de lotnbre de meuleQualité de meule
2021_04
33​
PY263304310/13
8​
2021_04
94​
VV269404210/6
8​
2021_04
94​
VV2694044189/230
8​
2021_09
24​
PY262409310/2
4​
2021_09PY262409410/2
4​

Tu as des données incohérentes (des dates mélangées avec des textes, et des nombres mélangés avec des textes

Amicalement
Alain
 

Excelée

XLDnaute Junior
Re...
L'erreur ne vient pas de la formule mais de données dans ton tableau
DateCoopN° de lotnbre de meuleQualité de meule
2021_04
33​
PY263304310/13
8​
2021_04
94​
VV269404210/6
8​
2021_04
94​
VV2694044189/230
8​
2021_09
24​
PY262409310/2
4​
2021_09PY262409410/2
4​

Tu as des données incohérentes (des dates mélangées avec des textes, et des nombres mélangés avec des textes

Amicalement
Alain
Alain,
effectivement l'erreur venait bien de ça!
Merci pour ton aide, je peux enfin avancer sur mon fichier :)

Bonne continuation
A bientôt
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Re... Re...

Sinon, à supposer que tes pseudo-dates soit toujours de la forme "aaaa_mm" et que tes nombres sous forme de texte soient toujours du type nb1/nb2 et en retenant nb2, cette formule valable pour Office2021 et MS365 fait le travail (Voir l'aide de la fonction LET) :
Enrichi (BBcode):
=LET(Dt;Tableau1[Date];
     MesDates;SIERREUR(SI(ESTNUM(Dt);Dt;DATEVAL(SUBSTITUE(Dt;"_";"/")&"/1"));"");
     Nb;Tableau1[nbre de meule];
     MesNb;SIERREUR(SI(ESTNUM(Nb);Nb;CNUM(DROITE(Nb;NBCAR(Nb)-TROUVE("/";Nb))));0);
     Tp;Tableau1[Qualité de meule];
     SOMMEPROD((MesDates<=E$5)*(Tp="18 PJ")*MesNb)
     )
(en renvoyant "" ou 0 pour les cas non prévus)
Bon courage !
Amicalement
Alain
 

Excelée

XLDnaute Junior
Re... Re...

Sinon, à supposer que tes pseudo-dates soit toujours de la forme "aaaa_mm" et que tes nombres sous forme de texte soient toujours du type nb1/nb2 et en retenant nb2, cette formule valable pour Office2021 et MS365 fait le travail (Voir l'aide de la fonction LET) :
Enrichi (BBcode):
=LET(Dt;Tableau1[Date];
     MesDates;SIERREUR(SI(ESTNUM(Dt);Dt;DATEVAL(SUBSTITUE(Dt;"_";"/")&"/1"));"");
     Nb;Tableau1[nbre de meule];
     MesNb;SIERREUR(SI(ESTNUM(Nb);Nb;CNUM(DROITE(Nb;NBCAR(Nb)-TROUVE("/";Nb))));0);
     Tp;Tableau1[Qualité de meule];
     SOMMEPROD((MesDates<=E$5)*(Tp="18 PJ")*MesNb)
     )
(en renvoyant "" ou 0 pour les cas non prévus)
Bon courage !
Amicalement
Alain
Alain, merci beaucoup pour cette autre formule. Petite question que signifie
Enrichi (BBcode):
? 
Cette formule fonctionnera aussi pour les nb1/nb2 c'est cela, mais en prenant qu'elle nombre? le nb1 ou le nb2? 

Merci
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Re ... Re... Re...
mais en prenant qu'elle nombre? le nb1 ou le nb2?
J'avais écrit :
texte soient toujours du type nb1/nb2 et en retenant nb2,
et c'est bien le nombre après le slash qui est retenu dans la formule ... On pourrait retenir nb1 en prenant ce qui est à droite du / :
...
MesNb;SIERREUR(SI(ESTNUM(Nb);Nb;CNUM(GAUCHE(Nb;TROUVE("/";Nb)-1)));0);
...
Amicalement
Alain
 
Dernière édition:

Excelée

XLDnaute Junior
Re Alain,
j'ai une autre question j'aimerais utilsé la formule SOMMEPROD pour 2 critère: 4 et 5.
Je pensais utiliser la formule suivante:
Code:
=SOMMEPROD((Tableau1[Qualité de meule]=4)+(Tableau1[Qualité de meule]=5)*(Tableau1[Date]<=G$45);Tableau1[nbre de meule])

Mais cela n'a pas l'air de fonctionner....
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Et encore Re !
Je tondais la pelouse (1ère tonte de l'année) ...
Je vois encore un problème de parenthèses. Tu écris :
=SOMMEPROD((Tableau1[Qualité de meule]=4)+(Tableau1[Qualité de meule]=5)*(Tableau1[Date]<=G$45);Tableau1[nbre de meule])
où je mettrais :
Enrichi (BBcode):
=SOMMEPROD(((Tableau1[Qualité de meule]=4)+(Tableau1[Qualité de meule]=5))*(Tableau1[Date]<=G$45);Tableau1[nbre de meule])
Amicalement
Alain
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 926
Membres
101 842
dernier inscrit
seb0390