Dédoublonner fichier sous Excel.
petitemarie
Messages postés
2541
Date d'inscription
Statut
Membre
Dernière intervention
-
dbankole -
dbankole -
Bonsoir.
J'ai un fichier sous Excel d ' à peu près 10 000 lignes, dont certaines reviennent en doublon, voire plus, une fois le fichier trié.
Connaissez-vous une fonction qui permette de supprimer les lignes en trop, sans devoir le faire ligne par ligne ?
D'avance merci.
@plus,
///Marie
J'ai un fichier sous Excel d ' à peu près 10 000 lignes, dont certaines reviennent en doublon, voire plus, une fois le fichier trié.
Connaissez-vous une fonction qui permette de supprimer les lignes en trop, sans devoir le faire ligne par ligne ?
D'avance merci.
@plus,
///Marie
A voir également:
- Dédoublonner fichier excel
- Dedoublonner excel - Guide
- Dédoublonner fichier - Télécharger - Nettoyage
7 réponses
Je sais que je déterre le sujet de 2 ans mais c'est pour apporter une méthode bien plus simple :), sans macro.
Attention par contre s'il y a un filtre automatique sur les données à dédoublonner parce que lorsqu'on sélectionne une zone filtrée par un filtre automatique, ça sélectionne des données non affichées qui se trouvent entre celles qui sont affichées.
Il suffit de :
1) Sélectionner les données à dédoublonner, et les trier. (cela va mettre côte à côte les cellules contenant les mêmes choses)
2) Insérer une colonne juste à côté pour y coller à chaque ligne le test : "est-ce que la cellule du dessous contient la même chose que la cellule de cette ligne ?"
3) Copier toute cette dernière colonne, et la recoller par dessus par valeur en collage spécial (pour que ça ne change plus par la suite)
4) Sélectionner les données à dédoublonner avec la colonne de 0(=unique) et 1(=au moins en double), et les trier selon la 2ème colonne (toutes les données qui sont déjà présentent vont se retrouver en bas de liste, il ne suffira plus qu'à les supprimer).
5) Supprimer la colonne qui a servi aux tests.
Concrètement :
Si les données vont de A1 à A10
Par exemple, utilisons la colonne B pour les petites formules
B1 contiendra =SI(A1=A2;1;0)
Copier coller B1 jusqu'à B10
etc.
Remarque : Si on ne veut pas perdre l'ordre original des données, il suffit d'insérer une colonne, avant le tout premier tri, pour y mettre un compteur de lignes (1, 2, 3, 4 etc.) en face de chaque donnée (à copier coller par valeur si c'est fait avec une formule). Après le point 5) il suffira de retrier selon cette colonne pour retrouver l'ordre d'origine.
Autre remarque : la comparaison est insensible à la casse donc BONJour et bonjOuR vont être identique par contre évidemment ce n'est pas insensible aux accents (Michael vs Michaël seront différents).
Attention par contre s'il y a un filtre automatique sur les données à dédoublonner parce que lorsqu'on sélectionne une zone filtrée par un filtre automatique, ça sélectionne des données non affichées qui se trouvent entre celles qui sont affichées.
Il suffit de :
1) Sélectionner les données à dédoublonner, et les trier. (cela va mettre côte à côte les cellules contenant les mêmes choses)
2) Insérer une colonne juste à côté pour y coller à chaque ligne le test : "est-ce que la cellule du dessous contient la même chose que la cellule de cette ligne ?"
3) Copier toute cette dernière colonne, et la recoller par dessus par valeur en collage spécial (pour que ça ne change plus par la suite)
4) Sélectionner les données à dédoublonner avec la colonne de 0(=unique) et 1(=au moins en double), et les trier selon la 2ème colonne (toutes les données qui sont déjà présentent vont se retrouver en bas de liste, il ne suffira plus qu'à les supprimer).
5) Supprimer la colonne qui a servi aux tests.
Concrètement :
Si les données vont de A1 à A10
Par exemple, utilisons la colonne B pour les petites formules
B1 contiendra =SI(A1=A2;1;0)
Copier coller B1 jusqu'à B10
etc.
Remarque : Si on ne veut pas perdre l'ordre original des données, il suffit d'insérer une colonne, avant le tout premier tri, pour y mettre un compteur de lignes (1, 2, 3, 4 etc.) en face de chaque donnée (à copier coller par valeur si c'est fait avec une formule). Après le point 5) il suffira de retrier selon cette colonne pour retrouver l'ordre d'origine.
Autre remarque : la comparaison est insensible à la casse donc BONJour et bonjOuR vont être identique par contre évidemment ce n'est pas insensible aux accents (Michael vs Michaël seront différents).
GUINESS
Merci pour ton explication claire.... Trop facile !!! Youpi !!
dbankole
Excellent!! C’était bête comme chou mais le génie s'est d'y penser. :-) Merci.
Je suis étonnée que personne n'ai donné la solution du filtre directement sur Excel :
1) Sélectionner les lignes à dédoublonner
2) Menu "Données"
3) puis "filtrer"
4) "Filtre élaboré"
5) Remplir la zone de critère (exemple, la colonne mail ou matricule)
6) cocher "Extraction sans doublon"
Le seul hic, c'est qu'il s'agit d'un affichage. Je cherche encore comment garder que ces lignes filtrées et rien d'autre à la sauvegarde.
1) Sélectionner les lignes à dédoublonner
2) Menu "Données"
3) puis "filtrer"
4) "Filtre élaboré"
5) Remplir la zone de critère (exemple, la colonne mail ou matricule)
6) cocher "Extraction sans doublon"
Le seul hic, c'est qu'il s'agit d'un affichage. Je cherche encore comment garder que ces lignes filtrées et rien d'autre à la sauvegarde.
il faut écrire une petite procédure Visual Basic.
je ne vois pas d'autre solution, si tu ne sais pas je peux te l'envoyer car c'est assez simple.
toujours zen
je ne vois pas d'autre solution, si tu ne sais pas je peux te l'envoyer car c'est assez simple.
toujours zen
Merci beaucoup pour ta réponse.
Tu peux me l'envoyer sur mon mail ( cf profil).
Bonne soirée.
@plus,
///Marie
Tu peux me l'envoyer sur mon mail ( cf profil).
Bonne soirée.
@plus,
///Marie
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir
Ou alors :
La procédure est décrite dans le Helper de EXCEL.
Faire F1 et écrire : "élimner les doublons"
Ou alors :
La procédure est décrite dans le Helper de EXCEL.
Faire F1 et écrire : "élimner les doublons"
Bonjour,
j'ai aussi un fichier d'adhérents à dédoublonner,
si vous pouviez m'envoyer cette petite procédure Visual Basic assez simple que je ne sais pas faire
si c'est possible merci d'avance
j'ai aussi un fichier d'adhérents à dédoublonner,
si vous pouviez m'envoyer cette petite procédure Visual Basic assez simple que je ne sais pas faire
si c'est possible merci d'avance
Bonjour bizu53,
Tes explications sont claires, pourtant je ne pige pas le n°4 et 5.
Est-ce que vous pourriez être plus précis sur ces points (surtt le 4)
merci infiniment
Tes explications sont claires, pourtant je ne pige pas le n°4 et 5.
Est-ce que vous pourriez être plus précis sur ces points (surtt le 4)
merci infiniment
4) Sélectionner les données à dédoublonner avec la colonne de 0(=unique) et 1(=au moins en double), et les trier selon la 2ème colonne (toutes les données qui sont déjà présentent vont se retrouver en bas de liste, il ne suffira plus qu'à les supprimer).
C'est vrai qu'en relisant aujourd'hui ma phrase, je me rends compte qu'elle est cassée par des parenthèses sans arrêt.
4 reformulé en 2 sous-parties :
4a) Sélectionner la colonne des données à dédoublonner avec la colonne contenant les 0/1.
4b) Trier la sélection par rapport à la colonne contenant les 0/1.
La remarque que j'avais voulu faire était que les lignes qui ont un "1" correspondent aux lignes à supprimer. Quand la même valeur à dédoublonner apparaît plusieurs fois, une seule ligne contient un "0" dans la colonne de test, et toutes les autres (ou "l'autre" si ce n'est qu'un double) ont des "1".
Ainsi, les trier par rapport à la colonne 0/1 permet de regrouper toutes les valeurs uniques en haut (car "0" dans la colonne test). Et toutes les lignes des valeurs multiples se retrouvent en bas (car "1" dans la colonne test).
5) La colonne test peut être supprimée puisqu'elle ne servait qu'à dédoublonner ;-)
Je pense être plus clair maintenant mais s'il y a encore des choses que je peux éclaircir ne pas hésiter à me demander.
PS: Je viens de penser à une remarque que je n'avais pas faite : Si les données à dédoublonner se trouvent sur plusieurs colonnes. Ma méthode nécessite une petite adaptation pas compliquée au niveau des étapes 1 et 2.
Par exemple :
colonne prénom, colonne nom
pierre, martin
michel, martin
michel, dupond
michel, martin
1) Trier les 2 colonnes par rapport à elles deux
michel, martin
michel, martin
michel, dupond
pierre, martin
=> les lignes michel, martin se retrouvent ainsi à la suite comme voulu.
2) La condition devient alors "est-ce que la cellule du dessous contient la même chose que la cellule de cette ligne pour chacune des colonnes ?"
En C1, au lieu de quelque chose comme : =SI(A1=A2;1;0)
Cela serait quelque chose comme : =SI(ET(A1=A2;B1=B2);1;0)
Ainsi, si les deux prénoms sont identiques mais pas les noms, ou inversement, les deux lignes seront bien distinguées.
(Les 3 4 5 ne changent pas)
C'est vrai qu'en relisant aujourd'hui ma phrase, je me rends compte qu'elle est cassée par des parenthèses sans arrêt.
4 reformulé en 2 sous-parties :
4a) Sélectionner la colonne des données à dédoublonner avec la colonne contenant les 0/1.
4b) Trier la sélection par rapport à la colonne contenant les 0/1.
La remarque que j'avais voulu faire était que les lignes qui ont un "1" correspondent aux lignes à supprimer. Quand la même valeur à dédoublonner apparaît plusieurs fois, une seule ligne contient un "0" dans la colonne de test, et toutes les autres (ou "l'autre" si ce n'est qu'un double) ont des "1".
Ainsi, les trier par rapport à la colonne 0/1 permet de regrouper toutes les valeurs uniques en haut (car "0" dans la colonne test). Et toutes les lignes des valeurs multiples se retrouvent en bas (car "1" dans la colonne test).
5) La colonne test peut être supprimée puisqu'elle ne servait qu'à dédoublonner ;-)
Je pense être plus clair maintenant mais s'il y a encore des choses que je peux éclaircir ne pas hésiter à me demander.
PS: Je viens de penser à une remarque que je n'avais pas faite : Si les données à dédoublonner se trouvent sur plusieurs colonnes. Ma méthode nécessite une petite adaptation pas compliquée au niveau des étapes 1 et 2.
Par exemple :
colonne prénom, colonne nom
pierre, martin
michel, martin
michel, dupond
michel, martin
1) Trier les 2 colonnes par rapport à elles deux
michel, martin
michel, martin
michel, dupond
pierre, martin
=> les lignes michel, martin se retrouvent ainsi à la suite comme voulu.
2) La condition devient alors "est-ce que la cellule du dessous contient la même chose que la cellule de cette ligne pour chacune des colonnes ?"
En C1, au lieu de quelque chose comme : =SI(A1=A2;1;0)
Cela serait quelque chose comme : =SI(ET(A1=A2;B1=B2);1;0)
Ainsi, si les deux prénoms sont identiques mais pas les noms, ou inversement, les deux lignes seront bien distinguées.
(Les 3 4 5 ne changent pas)
Bonjour,
Dsl je ne comprends comment parvenir à dédoublonner mon fichier...
Sans mon cas j'ai plusieurs colonnes, "nom, prenom, adresse, tel, fax, etc.", et dans un autre fichier j'ai tous les numéro de fax qui correspondent aux lignes entières que je dois supprimer, j'ai donc copier la colonne du 2e fichier et l'ai collée à côté du premier tableau afin de faire un filtre pour éliminer les doublons. Mais je ne sais pac omment sélectionner les cellules ou qqchose comme ça...
Pourriez-vous m'aider svp?
Dsl je ne comprends comment parvenir à dédoublonner mon fichier...
Sans mon cas j'ai plusieurs colonnes, "nom, prenom, adresse, tel, fax, etc.", et dans un autre fichier j'ai tous les numéro de fax qui correspondent aux lignes entières que je dois supprimer, j'ai donc copier la colonne du 2e fichier et l'ai collée à côté du premier tableau afin de faire un filtre pour éliminer les doublons. Mais je ne sais pac omment sélectionner les cellules ou qqchose comme ça...
Pourriez-vous m'aider svp?
Je ne suis pas sûr de bien comprendre, mais de ce que je crois comprendre, la même méthode n'est pas applicable mais peut être adaptée avec un RECHERCHEV je pense. La colonne "test" peut contenir 1 si c'est dans la liste des n° de fax, 0 sinon. Après il suffit comme dans la méthode que je donne, de trier par rapport à cette colonne de 0/1, puis supprimer toutes les lignes qui ont un 1.