[Excel] Compter des valeurs
Résolu/Fermé
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
-
21 sept. 2005 à 14:47
Marie-Josée - 5 juin 2016 à 22:11
Marie-Josée - 5 juin 2016 à 22:11
A voir également:
- Excel compter le nombre d'occurrence de plusieurs valeurs
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Si et excel - Guide
- Excel compter le nombre de cellule d'une couleur - Guide
- Aller à la ligne excel - Guide
14 réponses
Raymond PENTIER
Messages postés
58732
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 novembre 2024
17 246
21 août 2007 à 04:37
21 août 2007 à 04:37
Bonsoir, Erdnax (il est 22 h chez moi).
Comme l'indique random, il faut trier ta colonne.
Par précaution, je te conseille de ne pas travailler sur ton fichier original, mais sur une copie que tu supprimeras ensuite.
Nous utiliserons l'assistant "Sous-total". Allons-y :
1) Faire une copie du fichier
2) Effectuer un tri du tableau par rapport à la colonne contenant ces valeurs (par exemple colonne C, avec comme intitulé "Prix" en C1, et les différentes valeurs à partir de C2 jusqu'à C541, sans sauter de ligne)
3) Cliquer Données / Sous-totaux... : La boîte de dialogue "Sous-total" apparaît.
4) Dans la fenêtre 2 Utiliser la fonction choisir Nb à la place de Somme. Ne pas modifier le reste et faire OK
5) Excel déplace la colonne "Prix" et insère une colonne portant les intitulés "Nombre xxx", et à côté, dans la cellule "Prix", le nombre d'occurrences de chaque valeur xxx
6) En supposant que le total général, indiqué par l'intitulé "Nbval", soit à la ligne 559, se placer en C560 et saisir "=NBVAL(C2:C558") : Tu as ta réponse !
Fais-moi savoir si ça a marché.
Raymond
Comme l'indique random, il faut trier ta colonne.
Par précaution, je te conseille de ne pas travailler sur ton fichier original, mais sur une copie que tu supprimeras ensuite.
Nous utiliserons l'assistant "Sous-total". Allons-y :
1) Faire une copie du fichier
2) Effectuer un tri du tableau par rapport à la colonne contenant ces valeurs (par exemple colonne C, avec comme intitulé "Prix" en C1, et les différentes valeurs à partir de C2 jusqu'à C541, sans sauter de ligne)
3) Cliquer Données / Sous-totaux... : La boîte de dialogue "Sous-total" apparaît.
4) Dans la fenêtre 2 Utiliser la fonction choisir Nb à la place de Somme. Ne pas modifier le reste et faire OK
5) Excel déplace la colonne "Prix" et insère une colonne portant les intitulés "Nombre xxx", et à côté, dans la cellule "Prix", le nombre d'occurrences de chaque valeur xxx
6) En supposant que le total général, indiqué par l'intitulé "Nbval", soit à la ligne 559, se placer en C560 et saisir "=NBVAL(C2:C558") : Tu as ta réponse !
Fais-moi savoir si ça a marché.
Raymond
J'ai recement deposé sur le site VBFRANCE deux nouvelles fonctions excel qui répondent a ta demande.
Pas besoin de trier ni de triturer la feuille. il suffit d'incorporer le code VBA de ces fonctiions dans ton classeur
et ensuite d'utiliser ces fonctions comme toutes les autres fonctions Excel.
Les doublons triplons ..... peuvent etre contigus ou non, c'est prévu dans la fonction.
Il y a une fonction pour compter le nombre d'occurences non nulles et différentes dans une plage de cellules
NBVAL_DISTINCT
et une autre si on a filtré la plage pour compter le nb d'occurences non nulles, différentes et visibles.
NBVAL_DISTINCT_VISIBLE
exemple
= NBVAL_DISTINCT(A1:A666)
Voir le lien :
https://codes-sources.commentcamarche.net/
Pas besoin de trier ni de triturer la feuille. il suffit d'incorporer le code VBA de ces fonctiions dans ton classeur
et ensuite d'utiliser ces fonctions comme toutes les autres fonctions Excel.
Les doublons triplons ..... peuvent etre contigus ou non, c'est prévu dans la fonction.
Il y a une fonction pour compter le nombre d'occurences non nulles et différentes dans une plage de cellules
NBVAL_DISTINCT
et une autre si on a filtré la plage pour compter le nb d'occurences non nulles, différentes et visibles.
NBVAL_DISTINCT_VISIBLE
exemple
= NBVAL_DISTINCT(A1:A666)
Voir le lien :
https://codes-sources.commentcamarche.net/
Je ne suis pas un pro d'excel mais si tu cherches le nombre de valeurs differentes dans une colonne, je copierais la colonne quelque part, selcetionner cette nouvelle colonne, supprimer les doublons, puis appliquer un simple NBVAL sur cette colonne.
Supposons les données en colonne A à partir de la cellule A2
Trier de A2 à la fin
En colonne B2, mettre la formule suivante:
=SI(A2<>A1;1;0)
Recopier cette formule vers le bas ce qui met la valeur 1 à chaque changement de valeur
Faire la somme de la colonne B avec la formule suivante:
=somme(B:B)
Ceci marche pour tous les types de valeur...
Trier de A2 à la fin
En colonne B2, mettre la formule suivante:
=SI(A2<>A1;1;0)
Recopier cette formule vers le bas ce qui met la valeur 1 à chaque changement de valeur
Faire la somme de la colonne B avec la formule suivante:
=somme(B:B)
Ceci marche pour tous les types de valeur...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cerelog
Messages postés
4588
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
24 mai 2013
736
21 sept. 2005 à 14:53
21 sept. 2005 à 14:53
il faut utiliser un tableau croisé dynamique pour faire resortir tes valeurs
cerelog
cerelog
random
Messages postés
1612
Date d'inscription
vendredi 26 novembre 2004
Statut
Membre
Dernière intervention
30 mars 2006
155
21 sept. 2005 à 15:36
21 sept. 2005 à 15:36
on trie la colonne
on met en place la formule suivante
si (maligne=ligne-1;1;0)
et on somme
on met en place la formule suivante
si (maligne=ligne-1;1;0)
et on somme
Bonjour,
J'ai essayé la formule de michel mais sans succès, je retrouve l'erreur valeur dans ma case de résultats. Pourtant j'ai fais copier/coller et j'ai modifié les plages de valeurs... Si qqun a une idée merci bcp
J'ai essayé la formule de michel mais sans succès, je retrouve l'erreur valeur dans ma case de résultats. Pourtant j'ai fais copier/coller et j'ai modifié les plages de valeurs... Si qqun a une idée merci bcp
Raymond PENTIER
Messages postés
58732
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 novembre 2024
17 246
>
Jac franctireur
27 juin 2008 à 05:37
27 juin 2008 à 05:37
5 mois après, tu penses réellement que ton intervention va encore l'intéresser ?
Pierrot
>
Raymond PENTIER
Messages postés
58732
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 novembre 2024
18 nov. 2008 à 14:57
18 nov. 2008 à 14:57
Bien sur que c'est utile pour tous ceux qui lisent ce thread.
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
>
Pierrot
3 déc. 2008 à 21:02
3 déc. 2008 à 21:02
Et bien comme il n'est jamais trop tard j'en profite pour en mettre une non matricielle :
=SOMMEPROD((FREQUENCE(B2:B28;B2:B28)>0)*1)
eric
=SOMMEPROD((FREQUENCE(B2:B28;B2:B28)>0)*1)
eric
snew
>
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
9 févr. 2009 à 18:11
9 févr. 2009 à 18:11
et pour une liste non numérique?
genre nombre de clients différents...
genre nombre de clients différents...
etienne06
Messages postés
147
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
23 mars 2015
10
18 avril 2012 à 11:09
18 avril 2012 à 11:09
Bonjour,
Je pense qu'il faut utiliser une formule comme celle-là :
=SOMMEPROD(1/NB.SI(D9:D23;D9:D23))
Où D9:D23 est la plage de données où se trouvent les valeurs différentes ou non les unes par rapoort aux autres.
Espérant que cela fonctionne dans ton cas,
Bonne continuation.
Je pense qu'il faut utiliser une formule comme celle-là :
=SOMMEPROD(1/NB.SI(D9:D23;D9:D23))
Où D9:D23 est la plage de données où se trouvent les valeurs différentes ou non les unes par rapoort aux autres.
Espérant que cela fonctionne dans ton cas,
Bonne continuation.
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
497
21 sept. 2005 à 15:41
21 sept. 2005 à 15:41
Qu'est ce que tu entends par ligne-1 ?
T'arrive à me montrer un exemple de ce que ça peut donner ? Même complètement fictif, comment tu fais pour retourner à la ligne précédente ?
T'arrive à me montrer un exemple de ce que ça peut donner ? Même complètement fictif, comment tu fais pour retourner à la ligne précédente ?
Je pense que cette solution (maligne-1) ne marche pas, j ai le meme probleme et si j applique cela j ai par exemple :
5
5
5
5
4
4
5
5
5
Il va compter 3 alors qu il y a que 2 valeurs différentes...
5
5
5
5
4
4
5
5
5
Il va compter 3 alors qu il y a que 2 valeurs différentes...
Raymond PENTIER
Messages postés
58732
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
29 novembre 2024
17 246
22 août 2007 à 01:46
22 août 2007 à 01:46
C'est encore moi.
Notre ami qmike a parfaitement raison. Le blog "Astuces Michel" est d'ailleurs remarquable, exhaustif, clair, bien organisé.
J'avoue que je ne connaissais pas la formule qu'il propose, mais je l'ai testée et elle marche au poil !
Mais enfin ma prose concernant SOUS-TOTAL pourra toujours te servir à une autre occasion ...
Salut, Raymond
Notre ami qmike a parfaitement raison. Le blog "Astuces Michel" est d'ailleurs remarquable, exhaustif, clair, bien organisé.
J'avoue que je ne connaissais pas la formule qu'il propose, mais je l'ai testée et elle marche au poil !
Mais enfin ma prose concernant SOUS-TOTAL pourra toujours te servir à une autre occasion ...
Salut, Raymond
Regarde si tu n'as pas une version anglaise d'Excel. Au quel cas tu devras trouver la traduction de la formule.
Bonjour,
Mon premier livrable sur un forum.
Imaginons que ta colonne en A ait des doublons, triplons, quadruplons,...
faire un trie croissant de la colonne A
insérer une ligne en haut
insérer quatre colones B, C, D et E
en B
=SI(A2=A1;1;0)
en C
=SI(B2=0;1;0)
en D
=SI(ET(C2=0;B2=1);D1+1;1)
en E
=SI(ET(B2=1;B3=0);D2;SI(ET(B2=0;B3=0);1;""))
On peut surement faire mieux, mais ça, ça marche.
Cordialement.
Mon premier livrable sur un forum.
Imaginons que ta colonne en A ait des doublons, triplons, quadruplons,...
faire un trie croissant de la colonne A
insérer une ligne en haut
insérer quatre colones B, C, D et E
en B
=SI(A2=A1;1;0)
en C
=SI(B2=0;1;0)
en D
=SI(ET(C2=0;B2=1);D1+1;1)
en E
=SI(ET(B2=1;B3=0);D2;SI(ET(B2=0;B3=0);1;""))
On peut surement faire mieux, mais ça, ça marche.
Cordialement.
Erdnax
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
497
21 sept. 2005 à 15:19
21 sept. 2005 à 15:19
Salut,
Merci pour ta réponse, mais en fait, je m'en suis sortis avec des sommes, sommes.si, et nb ;)
@+
Merci pour ta réponse, mais en fait, je m'en suis sortis avec des sommes, sommes.si, et nb ;)
@+
12 févr. 2013 à 18:59
=somme(1/NB.SI(A2:A500 ;A2:A500))
Comme c'est une matricielle, pour valider la formule il faut taper ctrl+maj+entrée.
18 mars 2015 à 11:39
Cela fonctionne parfaitement !
3 mars 2014 à 09:00
Merci beaucoup Raymond
5 juin 2016 à 22:11
Par contre, pour voir cette fonction, il faut aller dans Fichier, Options, Compléments, bouton Atteindre, puis activer le complément Analysis Toolpack.