comptage dans une plage de lignes

J

JJ1

Guest
Bonjour,
J'ai une plage de nombres de 0 à 9 (les nombres peuvent se répéter) en A1:F30 par ex.
Je voudrais connaitre le nombre de lignes contenant un 0, un autre 0 et un 1 (par ex) dans les 6 nombres de la ligne .
Mon sommeprod ne fonctionne pas:
sommeprod((plage=0)*(plage=0)*(plage=1))
avez-vous une idée?
merci
 

antha

XLDnaute Occasionnel
Re : comptage dans une plage de lignes

Bonjour!

Essaye cette formule :
=SOMMEPROD(ESTNUM(CHERCHE(0;A1:A8))*ESTNUM(CHERCHE(1;A1:A8))*1)

Normalement, cela devrait te donner ce que tu cherches:)
 
Dernière édition:

JeanMarie

XLDnaute Barbatruc
Re : comptage dans une plage de lignes

Bonsoir J1, Antha

Je n'ai pas compris la même chose.

Formule à valider par les touches Ctrl+Shift+Etrer
Code:
=SOMME((FREQUENCE(SI(A1:F30=I1;LIGNE(1:30));LIGNE(1:30))=2)*(FREQUENCE(SI(A1:F30=K1;LIGNE(1:30));LIGNE(1:30))>0))
En I1 la valeur 0 à contrôler 2 fois sur la même ligne.
En K1 la valeur 1 à contrôler la présence sur la même ligne que le double 0.

Si nous nous fourvoyons, transmet un fichier STP.

@+Jean-Marie.
 
J

JJ1

Guest
Re : comptage dans une plage de lignes

Bonjour Jean-Marie, Antha, Le forum,
La fonction Fréquence fonctionne très bien (je reconnais bien le talent de Jean-Marie), j'ai voulu adapter à 3 tests....j'ai toujours 0?
ps: Mon sommeprod que je cite au départ ne fonctionne pas , pourtant il semblait logique non?
je joins un exemple.
Merci comme toujours.



edit: j'ai trouvé! =1 n'est pas la même chose que >0 !
comme quoi après mangé, on réfléchit!
Bon am à tous
 

Pièces jointes

  • Cla2.xls
    16.5 KB · Affichages: 61
  • Cla2.xls
    16.5 KB · Affichages: 62
  • Cla2.xls
    16.5 KB · Affichages: 61
Dernière modification par un modérateur:

JeanMarie

XLDnaute Barbatruc
Re : comptage dans une plage de lignes

Bonsoir

Logique, en quelque sorte !

Que se Passe-t-il quand Excel calcul la partie (A1:F30=0)*(A1:F30=0)*(A1:F30=1) ?

En gros Excel va multiplier le résultat de 3 matrice.

Chacune des matrices contiendra le résultat du comparateur "=" soit VRAI ou FAUX, et se pour chaque valeur de la plage indiquée.

Voici la représentation de la matrice du comparateur =0 (partie à droite), suivant des données A2:F31 (à gauche).
Code:
  | A  | B  | C  | D  | E  | F  |  G  |   H   |   I   |   J   |   K   |   L   |   M   | 
	--|----|----|----|----|----|----|-----|-------|-------|-------|-------|-------|-------|-
	 1| Tableau des données    |    |     | Résultat du comparateur dans la matrice       | 
	 2|  0 |  0 |  5 |  2 |  9 |  1 |     |  VRAI |  VRAI |  FAUX |  FAUX |  FAUX |  FAUX | 
	 3|  2 |  0 |  4 |  3 |  8 |  7 |     |  FAUX |  VRAI |  FAUX |  FAUX |  FAUX |  FAUX | 
	 4|  7 |  4 |  5 |  1 |  0 |  8 |     |  FAUX |  FAUX |  FAUX |  FAUX |  VRAI |  FAUX | 
	 5|  1 |  9 |  6 |  8 |  2 |  7 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	 6|  4 |  3 |  5 |  3 |  6 |  6 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	 7|  6 |  9 |  5 |  6 |  9 |  1 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	 8|  1 |  9 |  6 |  4 |  4 |  1 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	 9|  6 |  3 |  6 |  5 |  0 |  4 |     |  FAUX |  FAUX |  FAUX |  FAUX |  VRAI |  FAUX | 
	10|  6 |  1 |  3 |  7 |  2 |  1 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	11|  2 |  8 |  7 |  0 |  7 |  1 |     |  FAUX |  FAUX |  FAUX |  VRAI |  FAUX |  FAUX | 
	12|  2 |  0 |  7 |  9 |  0 |  2 |     |  FAUX |  VRAI |  FAUX |  FAUX |  VRAI |  FAUX | 
	13|  2 |  3 |  5 |  4 |  6 |  0 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  VRAI | 
	14|  0 |  6 |  8 |  7 |  0 |  7 |     |  VRAI |  FAUX |  FAUX |  FAUX |  VRAI |  FAUX | 
	15|  8 |  8 |  2 |  8 |  1 |  4 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	16|  2 |  0 |  1 |  9 |  8 |  1 |     |  FAUX |  VRAI |  FAUX |  FAUX |  FAUX |  FAUX | 
	17|  3 |  3 |  1 |  1 |  6 |  1 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	18|  7 |  5 |  2 |  5 |  0 |  4 |     |  FAUX |  FAUX |  FAUX |  FAUX |  VRAI |  FAUX | 
	19|  6 |  9 |  1 |  5 |  7 |  4 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	20|  3 |  5 |  2 |  6 |  9 |  5 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	21|  0 |  4 |  4 |  5 |  1 |  9 |     |  VRAI |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	22|  0 |  2 |  6 |  7 |  5 |  1 |     |  VRAI |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	23|  3 |  2 |  2 |  5 |  6 |  1 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	24|  9 |  9 |  4 |  1 |  9 |  1 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	25|  6 |  0 |  2 |  2 |  5 |  0 |     |  FAUX |  VRAI |  FAUX |  FAUX |  FAUX |  VRAI | 
	26|  9 |  4 |  2 |  3 |  7 |  0 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  VRAI | 
	27|  3 |  7 |  6 |  1 |  7 |  2 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	28|  4 |  6 |  3 |  9 |  0 |  9 |     |  FAUX |  FAUX |  FAUX |  FAUX |  VRAI |  FAUX | 
	29|  8 |  4 |  8 |  4 |  1 |  7 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX | 
	30|  4 |  6 |  4 |  2 |  8 |  0 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  VRAI | 
	31|  7 |  6 |  9 |  7 |  2 |  2 |     |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |  FAUX |
Tu peux voir la relation du 0 dans la plage avec le VRAI à l'intérieur de la matrice.

Maintenant quand la valeur à tester du comparateur change. Toutes les valeurs VRAI de la matrice vont passées obligatoirement à FAUX. Ce qui est logique, la même valeur de la plage A1:F30 ne pouvant pas être égale à deux valeurs différentes.(1 et 0).

Au final, les valeurs des matrices sont combinés par le *. Un VRAI * VRAI * FAUX retournera FAUX. C'est pour cela que tu as comme résultat 0. Voilà pour ta question sur la logique.

Si tu voudrais utiliser SOMMEPORD, il faudrait non pas prendre la plage en globalité pour utiliser deux valeurs à tester, mais la dissocier pour chacune des colonnes. Comme ceci (A1:A30=0)*(B1:B30=0)*(C1:C30=1), mais voilà toi tu as 6 colonnes et pour 3 valeurs à tester, ce qui fait 18 matrices.

Concernant ta dernière demande
Code:
=SOMME(((FREQUENCE(SI(A1:F30=I1;LIGNE(1:30));LIGNE(1:30))*FREQUENCE(SI(A1:F30=J1;LIGNE(1:30));LIGNE(1:30))*FREQUENCE(SI(A1:F30=K1;LIGNE(1:30));LIGNE(1:30)))>0)*1)

@+Jean-Marie
 

Discussions similaires

Statistiques des forums

Discussions
312 609
Messages
2 090 197
Membres
104 449
dernier inscrit
Miguel937