Compter des noms et prénoms mis sur deux colonnes......

Fermé
Clademar Messages postés 10 Date d'inscription jeudi 8 septembre 2016 Statut Membre Dernière intervention 24 janvier 2017 - 8 sept. 2016 à 08:31
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 - 14 sept. 2016 à 20:02
Je m'explique, j'ai un tableau avec une colonne "nom" et une colonne "prénom". Des mêmes noms et prénoms sont répétés plusieurs fois dans ces colonnes ( par exemple j'ai plusieurs fois Donald Duck, Mickey Mouse, etc......). Il s'agit de clients qui sont passés plusieurs fois dans notre établissement. Je désire faire le total des clients que nous avons eus, sans compter les doublons. Je désire avoir une méthode qui ne nécessite pas de rajouter une colonne où les noms sont reportés, si possible. Merci de votre réponse.
A voir également:

11 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
8 sept. 2016 à 09:20
Bonjour,

Le plus simple me semble d'utiliser un filtre avancé avec une extraction sans doublon.

A+
0
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
8 sept. 2016 à 09:34
Bonjour , Clademar , Gyrus ,

Pourquoi avoir retirer le "bonjour" écrit d'office ?

En faisait une simple recherche sur Google , qui m'a pris certainement moins de temps que toi pour écrire ton sujet :

https://support.microsoft.com/en-us/office/count-unique-values-among-duplicates-8d9a69b3-b867-490e-82e0-a929fbc1e273?redirectsourcepath=%252ffr-fr%252farticle%252fcompter-des-valeurs-uniques-parmi-des-doublons-7889942d-824e-4469-893c-191d1efde950&ui=en-us&rs=en-us&ad=us

=SOMME(SI(FREQUENCE(EQUIV(A2:A12&B2:B12;A2:A12&B2:B12;0);EQUIV(A2:A12&B2:B12;A2:A12&B2:B12;0))>0;1))


A adapter , celle ci est faite pour 12 lignes.

Cordialement,
0
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 810
8 sept. 2016 à 10:13
Bonjour à vous trois

Une précision si les lignes sélectionnées comprennent une ligne vide cela compte un élément en plus
0
Clademar Messages postés 10 Date d'inscription jeudi 8 septembre 2016 Statut Membre Dernière intervention 24 janvier 2017
8 sept. 2016 à 19:56
Merci Fahora, Je suis vraiment désolée si j'ai enlevé le bonjour, je ne m'en suis même par aperçue, c'est une première pour moi ! En tout cas je vous remercie déjà tous pour vos réponses.
Cordiales salutations
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
8 sept. 2016 à 10:23
Bonjour le fil,

pour ma part j'aurais concatené les données colonne A et B exemple en colonne E qui pourra être masquée avec =A2&B2

et cette formule si on prend soin de limiter la plage à la zone de données si non les cellule comtenant les formules seront comptabilisées
=SOMME(SI(FREQUENCE(EQUIV(E2:E8;E2:E8;0);EQUIV(E2:E8;E2:E8;0))>0;1))


dans le cas de cellule vide ou contenant des formules, utiliser la même formule en remplaçant la borne E8 par une détection de cellule non vide avec formule retournant rien ""
remplacer E2:E8 par E2:INDIRECT(ADRESSE(MAX(LIGNE(E:E)*(E:E<>""));5;4))
ce qui donne
=SOMME(SI(FREQUENCE(EQUIV(E2:INDIRECT(ADRESSE(MAX(LIGNE(E:E)*(E:E<>""));5;4));E2:INDIRECT(ADRESSE(MAX(LIGNE(E:E)*(E:E<>""));5;4));0);EQUIV(E2:INDIRECT(ADRESSE(MAX(LIGNE(E:E)*(E:E<>""));5;4));E2:INDIRECT(ADRESSE(MAX(LIGNE(E:E)*(E:E<>""));5;4));0))>0;1))

0
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
8 sept. 2016 à 10:25
Bonjour Mike , c'est effectivement ce que je fais aussi , sauf que je concatène directement dans la formule.
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 8/09/2016 à 10:47
Bonjour,

je travaillais également sur la même formule que tu as proposée avec un résultat erroné c'est pour cela que je suis passé par une colonne supplémentaire, c'est d'ailleurs ce que dénonçait Philou que je salue, compte manuelle les données et tu verras par toi même si tu as des lignes vides

Cordialement
0
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 810 > Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024
8 sept. 2016 à 11:03
Bonjour à vous tous

Autre problème si toutes les lignes sont renseignées de noms et prénom différents le résultat est erroné, il en manque 1
0
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
8 sept. 2016 à 11:12
Bonjour Philou ,

Je n'ai pas ce problème, j'ai bien le nombre exact quand il n'y a aucun doublon.

@Mike effectivement, j'ai bien vu que lorsqu'il y a une ou plusieurs lignes vides, la formule compte 1. En toute logique, il ne devrait pas y avoir, mais si il y a, il faut juste retirer 1 :)
0
PHILOU10120 Messages postés 6393 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 9 octobre 2024 810 > Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023
8 sept. 2016 à 11:24
Erreur de ma part ma liste démarrait en A1 et la formule copiée en A2
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 8/09/2016 à 15:20
Re,

Si entre l'adresse de la première et dernière cellule il n'y a pas de cellule vide exemple entre A2 et B10 il est possible d'utiliser cette formule qui sera figée à la plage
=SOMME(SI(FREQUENCE(EQUIV(A2:A10&B2:B10;A2:A10&B2:B10;0);EQUIV(A2:A10&B2:B10;A2:A10&B2:B10;0))>0;1))

si la est appelée a varier il faut remplacer la borne de fin par une recherche de dernière cellule non vide par colonne et donc remplacer A2:A10 par A2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);1;4))
et idem pour B2:B10 par
B2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);B:B;1);B:B);2;4))
ou
B2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);2;4))
ce qui donne comme formule finie
=SOMME(SI(FREQUENCE(EQUIV(A2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);1;4))&B2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);2;4));A2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);1;4))&B2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);2;4));0);EQUIV(A2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);1;4))&B2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);2;4));A2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);1;4))&B2:INDIRECT(ADRESSE(EQUIV(RECHERCHEV(CAR(255);A:A;1);A:A);2;4));0))>0;1))


il est possible de raccourcir la formule et faire plus technique en mettant des formule dans des champs nommé
pour cela activer la cellule destinée à contenir la formule finale et Formule/Gestionnaire de noms/Définir un nom
exemple pour la plage colonne A nommer un champ Col_A et saisir cette formule
=ADRESSE(EQUIV(RECHERCHEV(CAR(255);Sheet2!A:A;1);Sheet2!A:A);1;4)
nommer un nouveau champ pour la plage en colonne B exemple Col_B et saisir cette formule
=ADRESSE(EQUIV(RECHERCHEV(CAR(255);Sheet2!A:A;1);Sheet2!A:A);2;4)

la formule finale à coller dans la cellule active est
=SOMME(SI(FREQUENCE(EQUIV(A2:INDIRECT(Col_A)&B2:INDIRECT(Col_B);A2:INDIRECT(Col_A)&B2:INDIRECT(Col_B);0);EQUIV(A2:INDIRECT(Col_A)&B2:INDIRECT(Col_B);A2:INDIRECT(Col_A)&B2:INDIRECT(Col_B);0))>0;1))

et le tour est directement joué
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
8 sept. 2016 à 18:07
Re,

il est possible de faire plus court et plus simple, à la formule qui prend en compte les cellules vides
=SOMME(SI(FREQUENCE(EQUIV(A2:A100&B2:B100;A2:A100&B2:B100;0);EQUIV(A2:A100&B2:B100;A2:A100&B2:B100;0))>0;1))

il suffit d'ajouter une conditionnelle sur les cellules vides
SI(NB.VIDE(A2:A100)>0;1;0)

et soustraire la conditionnelle cellule vide à la formule ce qui donne
=SOMME(SI(FREQUENCE(EQUIV(A2:A100&B2:B100;A2:A100&B2:B100;0);EQUIV(A2:A100&B2:B100;A2:A100&B2:B100;0))>0;1))-SI(NB.VIDE(A2:A100)>0;1;0)


au passage heureusement que la discussion nous a passionnée plus qu'au demandeur Clademar
0
Clademar Messages postés 10 Date d'inscription jeudi 8 septembre 2016 Statut Membre Dernière intervention 24 janvier 2017 > Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024
8 sept. 2016 à 20:03
Bonjour tout le monde,

Mais ça me passionne énormément, je suis juste un peu (beaucoup) dépassée par ces formules. Je suis rentrée du travail seulement à 19H00, mais j'ai essayé plusieurs formules et la formule ultra longue de Mike-31 fonctionne. Je vais essayé les autres. Déjà un grand merci à vous tous
0
Clademar Messages postés 10 Date d'inscription jeudi 8 septembre 2016 Statut Membre Dernière intervention 24 janvier 2017 > Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024
8 sept. 2016 à 20:19
Bonjour Mike,

J'ai essayé cette formule
=SOMME(SI(FREQUENCE(EQUIV(A2:A100&B2:B100;A2:A100&B2:B100;0);EQUIV(A2:A100&B2:B100;A2:A100&B2:B100;0))>0;1))-SI(NB.VIDE(A2:A100)>0;1;0)

Elle fonctionne et est bien plus courte. Un grand merci encore

Vu que vous êtes des as, je me permets de vous poser encore un problème. En fait j'ai une troisième colonnes où il est ajouté si les clients font un long séjour ou un court séjour. Est-il possible de mettre une deuxième conditions à la première formule pour que j'aie un total des clients "long séjour" et un total des clients "court séjour",
Merci

PS: par contre je ne sais pas où je dois aller pour marquer ma première demande comme résolue
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
9 sept. 2016 à 10:14
Re,

Si j'ai bien compris ta nouvelle demande, tu veux savoir combien tu as eu de
"long séjour" et "court séjour" pour chaque client,
et est il possible que certains clients puissent avoir un court séjour et un long
0
Re,
Oui c'est possible, mais j'aimerai aussi que si des clients viennent plusieurs fois en long séjour ou court séjour, ils ne soient comptés qu'une fois par catégorie.
Merci et bonne journée
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 10/09/2016 à 11:09
Re,

Je ne t'ai pas oublié, seulement un peu boosté?
alors j'en reviens à mes colonnes intermédiaires qui simplifiera tout tes calculs
ces colonnes pourront être masquées, fait une concaténation de tes cellules Nom et Prénom avec un espace, dans mon exemple j'ai pris la colonne D avec cette simple formule
=A2&" "&B2
et incrémente vers le bas
en E2 cette formule matricielle
=INDEX(D$1:D$100;MIN(SI(NB.SI(E$1:E1;D$1:D$100)=0;SI(D$1:D$100<>"";LIGNE(D$1:D$100)))))&""

et incrémente vers le bas, il est possible d'éviter les formules de la colonne E avec des formule plus compliquées en F et G2 à toi de voir
ensuite pour ne pas utiliser des formules compliquées et compter tes fréquences évoquées précédemment utilise cette formule matricielle
=SOMME((FREQUENCE(SI(D2:D100="";"";EQUIV(D2:D100;D2:D100;0));LIGNE(D2:D100))>0)*1)


et pour ta dernière demande tu peux faire un tableau de deux colonnes pour extraire sans doublon et cellule vide les noms et prénom, exemple en F2 cette simple formule
=SIERREUR(GAUCHE($E2;CHERCHE(" ";$E2;1)-1);"")

en G2 cette formule
=SIERREUR(DROITE(E2;NBCAR(E2)-NBCAR(GAUCHE(E2;CHERCHE(" ";E2))));"")

ensuite pour compter les séjours qui par exemple sont zen colonne C tu colles en H2 cette formule
=SOMMEPROD((A2:A20=F2)*(B2:B20=G2)*(C2:C20="Long séjour")) 

et éviter les zéro dans le cas de cellule critère vide
=SI(F2="";"";SOMMEPROD((A2:A20=F2)*(B2:B20=G2)*(C2:C20="Long séjour")))

en I2
=SI(F2="";"";SOMMEPROD((A2:A20=F2)*(B2:B20=G2)*(C2:C20="Court séjour")))

et tu incrémentes ces formules vers le bas

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Bonjour Mike,

J'ai mis du temps, mais je faisais du baby-sitting pour mes petits-enfants.
Je te remercie de tes réponses, mais malheureusement ça ne fonctionne pas, car j'ai besoin de cette formule pour mon travail et mon patron ne veut pas que je reporte des noms et prénoms dans une autre colonnes.......Donc il me faut vraiment une formules qui me calcule le nombre de clients en court séjour et le nombre de client en long séjour, en sachant que si un client fait plusieurs courts séjours ou plusieurs longs séjours, il ne doit être compté qu'une fois par catégorie. Vraiment pas facile !
Un grand merci et amicalement

Clademar
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
Modifié par Mike-31 le 14/09/2016 à 08:49
Re,

il est gentil ton boss de demander l'impossible ou de faire compliqué lorsqu'on peut faire simple
ce problème peut se traiter que par VBA ou formule matricielle, à savoir que les formules matricielles utilisent beaucoup de ressource et il est conseillé de les utiliser sur des plages limitées si on ne souhaite pas voir ralentir les mises à jour de formules
mais enfin regarde comme cela "formule matricielle"
=NB(1/FREQUENCE(SI((C2:C100="Long séjour")*(A2:A100<>"");EQUIV(A2:A100&B2:B100;A2:A100&B2:B100;0));LIGNE(INDIRECT("1:"&LIGNES(A2:A100)))))


A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
0
Salut Mike,

J'ai essayé ta formule, malheureusement ça me donne "'0" comme résultat et avec mon exemple je devrais arriver à "35". Je pense que c'est impossible de trouver une formule qui fonctionne.
Merci quand même pour ton aide.
A+

Clademar
0
Mike-31 Messages postés 18345 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 novembre 2024 5 104
14 sept. 2016 à 20:02
Re,

je viens de retester et pas de problème tu dois faire une erreur ou tu ne déclare pas la formule correctement en matricielle
https://www.cjoint.com/c/FIosbQL81Dj
0