Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Compter le nombre d'itération suivant 2 critères SOMMEPROD

Gallyka

XLDnaute Nouveau
Bonjour à tous,

Je voudrais connaître le nombre d'itération suivant les critères ci dessous:
Sur la même ligne de la plage BI12 : BM30000 de l'onglet X si la colonne BM de l'onglet X="Y" et la colonne BI de l'onglet X>0 alors j'ajoute 1. Ma proposition est :
=SOMMEPROD((list50927!BM:BM="TAS2 - ToBeProcessTBP")*(list50927!BI:BI>0);(list50927!BI12:BM30000))
Mais cela ne marche pas ^(#Nombre) :s
Merci d'avance pour votre aide
 

DL_13

XLDnaute Occasionnel
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

Bonjour,

Sommeprod ne supporte pas les colonnes entières

a tester

Code:
=SOMMEPROD((list50927!BM12:BM30000="TAS2 - ToBeProcessTBP")*(list50927!BI12:BI30000>0);(list50927!BI12:BM30000))

Bonne journée
 

DL_13

XLDnaute Occasionnel
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

Re

A la relecture de ton post je te propose de mettre un extrait de ton fichier pour voir de plus près ce qu'il en est

Bonne journée
 

Gallyka

XLDnaute Nouveau
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

Je ne peux pas diffuser le fichier car il est utilisé dans le cadre d'un projet. Je vais essayer d'être plus clair :
Sur une plage BI12:BM30000 je dois vérifier ligne par ligne si la cellule BIn>0 et la cellule BMn = "TBP" alors j'incrémente 1 dans la cellule contenant la formule et ainsi jusqu'à n=30000
 

Hicsygrek

XLDnaute Occasionnel
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

Bonsoir Gallyka et DL_13

essaye cette formule :

=SI(OU(NB.SI(BI12:BL30000;0)>0;NB.SI(BM12:BM30000;"TBP")<29989);"ERREUR";1)

Si il y a un 0 dans ta plage ou si il manque un TBP, alors la cellule t'affichera ERREUR, sinon tu auras le 1 comme voulu.

En relisant, j'me dis que peut être tu ne veux vérifier les valeurs que dans la colonne BI et "TBP" que dans la colonne BM ... auquel cas :

=SI(OU(NB.SI(BI12:BI30000;0)>0;NB.SI(BM12:BM30000;"TBP")<29989);"ERREUR";1)
 
Dernière édition:

Gallyka

XLDnaute Nouveau
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

Merci Hicsygrek mais ta formule ne me permet pas de compter le nombre de lignes où la cellule BIn>0 et BMn="TBP", cela donnerait :
c=0 'compteur
For i=12 to 30000
If ActiveSheet.Cells(i, 9) > 0 & ActiveSheet.Cells(i, 13) = "TBP" then
c=c+1
End if
End for
Cellule de mon report = c
 

Hicsygrek

XLDnaute Occasionnel
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

Au temps pour moi j'avais pas compris comme cela ... dans ce cas :

=NB.SI(BI12:BI30000;">0")

-> donne le nombre de lignes où la valeur est supérieur à 0

=NB.SI(BM12:BM30000;"TBP")

-> donne le nombre de lignes où apparaissent "TBP"

Maintenant si tu le veux sous forme de code VBA je passe mon tour ...
 

Gallyka

XLDnaute Nouveau
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

Il faut que j'utilise SOMMEPROD() car j'ai plusieurs critères à respecter (les 2 que tu as écrit aau dessus) afin d'incrémenter le nb de lignes, malheureusement je ne peux pas utiliser vba cela aurait été plus simple pour moi
 

Gallyka

XLDnaute Nouveau
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

J'ai la solution c'était

=SOMMEPROD((list50927!BM12:BM30000="TAS2 - ToBeProcessTBP")*(list50927!BI12:BI30000>0))

J'ai enlevé (list50927!BI12:BM30000) car la formule SOMMEPROD() ne permet pas de mélanger les lignes et les colonnes!

Merci pour votre aide
Bonne fin de journée
 

Hicsygrek

XLDnaute Occasionnel
Re : Compter le nombre d'itération suivant 2 critères SOMMEPROD

hum ... Je reprends, pour chaque ligne où apparait en BI une valeur supérieure à 0 ET en BM le texte "TBP", tu veux avoir la valeur 1.
Si c'est celà on peut imaginer qu'en BN tu ais :

=SI(ET(BI12>0;BM12="TBP");1;0)

Formule que tu tires jusqu'à la ligne 30000, puis SOMME de la matrice ...
C'pas très pro mais tu peux masquer la colonne BN
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…