[excel]Liste noms et nombre occurence
TheAlien37
Messages postés
13
Statut
Membre
-
Mike-31 Messages postés 19572 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 19572 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je vous expose mon problème :
J'ai une liste de numéros, j'ai une autre colonne avec une fonction qui recherche les noms correspondants à c'est numéros dans une autre feuille excel du même classeur.
Cette fonction renvoi soit le nom soit #N/A quand elle ne trouve pas.
Ce que je voudrais dans une autre colonne c'est établir la liste des noms (sans #N/A) et calculer à coté combien de fois ces noms apparaissent dans la plage de données.
J'espère que j'ai été clair et merci beaucoup pour votre aide par avance.
Je vous expose mon problème :
J'ai une liste de numéros, j'ai une autre colonne avec une fonction qui recherche les noms correspondants à c'est numéros dans une autre feuille excel du même classeur.
Cette fonction renvoi soit le nom soit #N/A quand elle ne trouve pas.
Ce que je voudrais dans une autre colonne c'est établir la liste des noms (sans #N/A) et calculer à coté combien de fois ces noms apparaissent dans la plage de données.
J'espère que j'ai été clair et merci beaucoup pour votre aide par avance.
A voir également:
- Excel lister toutes les occurrences
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel liste déroulante en cascade - Guide
13 réponses
Re,
si tu suis mon post, le (#N/A) résulte d'un message d'erreur d'une formule parce ce que les conditions de la formule ne sont pas remplies. Tu peux éviter cet affichage avec cette formule et éviter une colonne suplémentaire
=si(esterreur(place ici ta formule);"";place ici ta formule)
ensuite pour compter un nom
=NB.SI(B1:B36;"X")
si les noms à compter font partis d'une chaine
cette formule comptera le nom seul ou suivi d'une chaine de caractères
=NB.SI(B1:B36;"X*")
ou le nom inséré dans la chaine
=NB.SI(B1:B36;"*X*")
si tu suis mon post, le (#N/A) résulte d'un message d'erreur d'une formule parce ce que les conditions de la formule ne sont pas remplies. Tu peux éviter cet affichage avec cette formule et éviter une colonne suplémentaire
=si(esterreur(place ici ta formule);"";place ici ta formule)
ensuite pour compter un nom
=NB.SI(B1:B36;"X")
si les noms à compter font partis d'une chaine
cette formule comptera le nom seul ou suivi d'une chaine de caractères
=NB.SI(B1:B36;"X*")
ou le nom inséré dans la chaine
=NB.SI(B1:B36;"*X*")
Bonjour.
Avec une formule, je ne sais pas trop.
Mais tu peux activer le bouton filtrage et faire un tri : les lignes contenant #N/A seront regroupées à la fin.
Et pour les décomptes tu peux choisir entre :
* utiliser l'assistant Sous-total,
* employer la fonction SOMME.SI ou la fonction SOMMEPROD
* élaborer un tableau croisé dynamique.
Avec une formule, je ne sais pas trop.
Mais tu peux activer le bouton filtrage et faire un tri : les lignes contenant #N/A seront regroupées à la fin.
Et pour les décomptes tu peux choisir entre :
* utiliser l'assistant Sous-total,
* employer la fonction SOMME.SI ou la fonction SOMMEPROD
* élaborer un tableau croisé dynamique.
Re,
prenons un exemple, ta première ligne doit être vide, en colonne F à partir de F2 tu as ta formule avec gestion d'erreur qui te donnera une liste de noms avec des cellules vides en remplacement des (#N/A)
=si(esterreur(place ici ta formule);"";place ici ta formule)
en colonne G à partir de G2, G1 doit être vide cette formule matricielle à confirmer en même temps les trois boutons Ctrl, Shift et Entrée à incrémenter vers le bas te donnera une liste sans doublon et sans vide
=INDEX(A$1:A$1000;MIN(SI(NB.SI(G$1:G1;A$3:A$1000)=0;SI(A$3:A$1000<>"";LIGNE(A$3:A$1000)))))&""
en face G2 cette formule que tu incrémentes sur la hauteur de la liste te donnera le nombre de nom dans ta liste
=NB.SI(F2:F1000;G2)
Si tu n'y arrive pas, je te ferai dans la soirée un exemple
prenons un exemple, ta première ligne doit être vide, en colonne F à partir de F2 tu as ta formule avec gestion d'erreur qui te donnera une liste de noms avec des cellules vides en remplacement des (#N/A)
=si(esterreur(place ici ta formule);"";place ici ta formule)
en colonne G à partir de G2, G1 doit être vide cette formule matricielle à confirmer en même temps les trois boutons Ctrl, Shift et Entrée à incrémenter vers le bas te donnera une liste sans doublon et sans vide
=INDEX(A$1:A$1000;MIN(SI(NB.SI(G$1:G1;A$3:A$1000)=0;SI(A$3:A$1000<>"";LIGNE(A$3:A$1000)))))&""
en face G2 cette formule que tu incrémentes sur la hauteur de la liste te donnera le nombre de nom dans ta liste
=NB.SI(F2:F1000;G2)
Si tu n'y arrive pas, je te ferai dans la soirée un exemple
Tes explications sont très claires mais ça ne fonctionne pas .. apparemment il y a un problème "circulaire". Si je récapitule la formule dont j'ai besoin c'est :
Fonction : création d'une liste sans doublon
Lire la colonne "noms" (colonne A)
Si le nom n'apparait pas dans la liste sans doublon (colonne B) écrire le nom
Sinon lire la ligne suivante (A) et refaire ce même test.
Ca à l'air facile comme ça mais je me prend la tête dessus depuis 2 jours. Si tu réussis tu deviens mon héros !!
Merci d'avance encore.
Fonction : création d'une liste sans doublon
Lire la colonne "noms" (colonne A)
Si le nom n'apparait pas dans la liste sans doublon (colonne B) écrire le nom
Sinon lire la ligne suivante (A) et refaire ce même test.
Ca à l'air facile comme ça mais je me prend la tête dessus depuis 2 jours. Si tu réussis tu deviens mon héros !!
Merci d'avance encore.
Salut,
déjà tu peux éviter le (#N/A) en complétant ta formule par exemple =si(esterreur(ta formule);"";ta formule)
ensuite pour te proposer une formule précise l'idéal serait d'avoir ton fichier sans notes confidentielles à joindre à partir de ce lien
https://www.cjoint.com/
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
déjà tu peux éviter le (#N/A) en complétant ta formule par exemple =si(esterreur(ta formule);"";ta formule)
ensuite pour te proposer une formule précise l'idéal serait d'avoir ton fichier sans notes confidentielles à joindre à partir de ce lien
https://www.cjoint.com/
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne peux pas diffuser ces données. Je crois que je vais essayé le tableau croisé dynamique.
Merci à tous les 2.
Merci à tous les 2.
Le problème c'est que j'ai plus de 1000 noms possibles par mois, et sur c'est 1000 seulement une vingtaine, différent à chaque fois ce retrouve dans la liste que j'extrait. Et à partir de celle là, je veux extraire les noms en supprimant les doublons automatiquement.
J'ai trouvé cette fonction :
Compter le nombre de valeurs uniques à l'aide d'un filtre
La boîte de dialogue Filtre avancé permet d'extraire les valeurs uniques d'une colonne de données et de les coller à un nouvel emplacement. Utilisez ensuite la fonction LIGNES pour compter le nombre d'éléments contenus dans la nouvelle plage.
1. Sélectionnez la plage de cellules ou vérifiez que la cellule active se trouve dans un tableau.
Vérifiez que la plage de cellules comporte un en-tête de colonne.
2. Sous l'onglet Données, dans le groupe Trier et filtrer, cliquez sur Avancé.
La boîte de dialogue Filtre avancé s'affiche.
3. Cliquez sur Copier vers un autre emplacement.
4. Dans la zone Copier vers, entrez une référence de cellule.
Ou bien, cliquez sur Réduire la boîte de dialogue image du bouton afin de masquer temporairement la boîte de dialogue, puis sélectionnez la cellule dans la feuille de calcul et appuyez sur Développer la boîte de dialogue image du bouton.
5. Activez la case à cocher Extraction sans doublon, puis cliquez sur OK.
Les valeurs uniques de la plage sélectionnée sont copiées au nouvel emplacement en commençant par la cellule spécifiée dans la zone Copier vers.
6. Dans la cellule vide située en dessous de la dernière cellule de la plage, entrez la fonction LIGNES. Utilisez la plage de valeurs uniques que vous venez de copier en tant qu'argument. Par exemple, si la plage de valeurs uniques est B2:B45, entrez :
=ROWS(B2:B45)
Le problème :
La fonction extrait la fonction (rechercheV "parmis plus de 3000 noms)" de chaque case et non le résultat qui est une chaine de caractère (les noms).
J'ai trouvé cette fonction :
Compter le nombre de valeurs uniques à l'aide d'un filtre
La boîte de dialogue Filtre avancé permet d'extraire les valeurs uniques d'une colonne de données et de les coller à un nouvel emplacement. Utilisez ensuite la fonction LIGNES pour compter le nombre d'éléments contenus dans la nouvelle plage.
1. Sélectionnez la plage de cellules ou vérifiez que la cellule active se trouve dans un tableau.
Vérifiez que la plage de cellules comporte un en-tête de colonne.
2. Sous l'onglet Données, dans le groupe Trier et filtrer, cliquez sur Avancé.
La boîte de dialogue Filtre avancé s'affiche.
3. Cliquez sur Copier vers un autre emplacement.
4. Dans la zone Copier vers, entrez une référence de cellule.
Ou bien, cliquez sur Réduire la boîte de dialogue image du bouton afin de masquer temporairement la boîte de dialogue, puis sélectionnez la cellule dans la feuille de calcul et appuyez sur Développer la boîte de dialogue image du bouton.
5. Activez la case à cocher Extraction sans doublon, puis cliquez sur OK.
Les valeurs uniques de la plage sélectionnée sont copiées au nouvel emplacement en commençant par la cellule spécifiée dans la zone Copier vers.
6. Dans la cellule vide située en dessous de la dernière cellule de la plage, entrez la fonction LIGNES. Utilisez la plage de valeurs uniques que vous venez de copier en tant qu'argument. Par exemple, si la plage de valeurs uniques est B2:B45, entrez :
=ROWS(B2:B45)
Le problème :
La fonction extrait la fonction (rechercheV "parmis plus de 3000 noms)" de chaque case et non le résultat qui est une chaine de caractère (les noms).
Re,
je comprends que ton fichier est confidentiel mais rien ne t'empêche de créer un exemple avec les entêtes de colonne et quelques données bidons en respectant les numéros de colonne.
tu peux également apporter quelques explications et je te fais les formules qu'il te suffira de copier
je comprends que ton fichier est confidentiel mais rien ne t'empêche de créer un exemple avec les entêtes de colonne et quelques données bidons en respectant les numéros de colonne.
tu peux également apporter quelques explications et je te fais les formules qu'il te suffira de copier
Re,
Clic sur ce lien/Parcourir pour sélectionner le fichier/Créer le lien/copie dans un post le lien généré
https://www.cjoint.com/
Clic sur ce lien/Parcourir pour sélectionner le fichier/Créer le lien/copie dans un post le lien généré
https://www.cjoint.com/
Bonsoir l'ami,
c'est bon j'ai récupéré le fichier, je regarderai ça que demain en début d'après midi ça ne ma semble pas très compliqué.
Cordialement
c'est bon j'ai récupéré le fichier, je regarderai ça que demain en début d'après midi ça ne ma semble pas très compliqué.
Cordialement
TheAlien37.
Ta formule en F2 ne fonctionne pas car la référence de la feuille contenant la matrice est fausse : tu as écrit 'Liste utilisateurs'!, avec un S, alors que la feuille s'appelle Liste utilisateur, sans S !
D'autre part ta formule étant destinée à être recopiée vers le bas, il te faut
* soit figer les références de la matrice et mettant 'Liste utilisateurs'!$A$2:$B$3255 à la place de 'Liste utilisateurs'!A2:B3255
* donner un nom (tab par exemple) à cette plage et écrire en F2 ta formule
=SI(ESTERREUR(RECHERCHEV(B2;tab;2;0));"";RECHERCHEV(B2;tab;2;0))
Une fois que tu as ta liste complète, utilise la commande Données/Supprimer les doublons pour créer une liste sans doublons. Il sera facile ensuite de décompter, soit avec la fonction SOUS-TOTAL, soit avec la fonction NB.SI.
Ta formule en F2 ne fonctionne pas car la référence de la feuille contenant la matrice est fausse : tu as écrit 'Liste utilisateurs'!, avec un S, alors que la feuille s'appelle Liste utilisateur, sans S !
D'autre part ta formule étant destinée à être recopiée vers le bas, il te faut
* soit figer les références de la matrice et mettant 'Liste utilisateurs'!$A$2:$B$3255 à la place de 'Liste utilisateurs'!A2:B3255
* donner un nom (tab par exemple) à cette plage et écrire en F2 ta formule
=SI(ESTERREUR(RECHERCHEV(B2;tab;2;0));"";RECHERCHEV(B2;tab;2;0))
Une fois que tu as ta liste complète, utilise la commande Données/Supprimer les doublons pour créer une liste sans doublons. Il sera facile ensuite de décompter, soit avec la fonction SOUS-TOTAL, soit avec la fonction NB.SI.
CA MARCHE !!!!!!!!!!!!!!!!!!!!
Merci à tous ! Espécialement à Mike-31 (et sa patience) et à Raymond PENTIER !
Merci à tous ! Espécialement à Mike-31 (et sa patience) et à Raymond PENTIER !
Bon ça marche pour la liste sans doublon mais après il ne compte pas le nombre de fois où le nom apparaît dans la liste (avec doublon) .... Voici ma formule :
=NB.SI($F$2:$F$121;Extraction)
"extraction" car c'est la case de la liste sans doublon qui résultat d'une formule.
$F$2:$F$121 : c'est la liste avec doublon.
??
=NB.SI($F$2:$F$121;Extraction)
"extraction" car c'est la case de la liste sans doublon qui résultat d'une formule.
$F$2:$F$121 : c'est la liste avec doublon.
??
Re,
je suis de retour, récupère ton fichier et regarde Feuil3 si c'est ce que tu cherches, onglet Liste Utilisateur tu peux ajouter des références et des Noms, teste le fichier et on en reparle
https://www.cjoint.com/?BDsphBIYDE2
je suis de retour, récupère ton fichier et regarde Feuil3 si c'est ce que tu cherches, onglet Liste Utilisateur tu peux ajouter des références et des Noms, teste le fichier et on en reparle
https://www.cjoint.com/?BDsphBIYDE2