Bonjour,
La difficulté de traitement provient de la disjonction mois - années dans deux colonnes séparées au lieu de travailler sur des dates.
En appelant liste_mois et liste_années les plages des colonnes C et D où sont notés les mois (1 à 12) et les années, si l’on s’intéresse aux produits nouveaux par exemple au mois de mai 2018, il faudra éliminer les produits qui sont apparus avant mai 2018.
Or, pour l’emploi de la fonction NB.SI.ENS., on ne peut pas traduire le critère « être antérieur » à mai 2018 (avec 5 en N5 et 2018 en N6 ) par :
NB.SI.ENS(… ; liste_mois ; "<"&N5 ; liste_années ; "<" &N6).
"Etre antérieur à mai 2018" n’équivaut pas à : "le mois est inférieur à 5" ET "l’année est inférieure à 2018".
En rajoutant au tableau source une colonne E où une date est créée par formule à partir du mois et de l’année sur chaque ligne, on pourra ensuite ne travailler que sur ce seul critère.
La formule en E6 est :
=FIN.MOIS(DATE(D6;C6;1);0)
à recopier vers le bas en colonne E.
Les noms produits et finmois désignant respectivement les plages B6 :B16 et E6 :E16, la formule matricielle en I7 est :
=SOMME(SI(finmois<=FIN.MOIS(DATE(I$6;I$5;1);0);1/NB.SI.ENS(produits;produits;finmois;"<="&FIN.MOIS(DATE(I$6;I$5;1);0))))-SOMME($H7:H7)
A valider par CTRL + MAJ + Entrée et à recopier vers la droite en ligne 7.
Avec l’incrémentation, la formule en K7 devient :
{=SOMME(SI(finmois<=FIN.MOIS(DATE(K$6;K$5;1);0);1/NB.SI.ENS(produits;produits;finmois;"<="&FIN.MOIS(DATE(K$6;K$5;1);0))))-SOMME($H7:J7)}
La première partie de la formule SOMME(SI(finmois<=FIN.MOIS(DATE(I$6;I$5;1);0);1/NB.SI.ENS(produits;produits;finmois;"<="&FIN.MOIS(DATE(I$6;I$5;1);0))))
donne le nombre de produits différents vendus jusqu’au mois de février 2018 inclus soit 7 (obtenu avec la touche F9 après avoir sélectionné cette partie de formule).
La seconde partie SOMME($H7:J7) donne le nombre de produits déjà vus les mois précédents soit 4.
La différence donne donc le nombre de produits nouveaux apparus en février 2018 c'est à dire 3.
Cordialement
Claude
Partager