Farris a une feuille de calcul qui contient des adresses. Certaines adresses sont très proches de la même chose, de sorte que l’adresse postale est la même et que seule la partie du numéro de suite de l’adresse diffère. Par exemple, une ligne peut avoir une adresse de « 85 Seymour Street, Suite 101 » et une autre ligne peut avoir une adresse de « 85 Seymour Street, Suite 412 ». Farris se demande comment supprimer les doublons dans la liste d’adresses en fonction d’une correspondance partielle – basée uniquement sur l’adresse postale et en ignorant le numéro de suite.

La solution la plus simple consiste à diviser davantage les adresses en colonnes distinctes, de sorte que le numéro de suite soit dans sa propre colonne. Vous pouvez le faire en suivant ces étapes:

  1. Assurez-vous qu’il y a une colonne vide à droite de la colonne d’adresse.

  2. Sélectionnez les cellules contenant des adresses.

  3. Choisissez Texte en colonnes dans le menu Données. Excel démarre l’assistant de conversion de texte en colonnes. (Voir la figure 1.)

  4. Dans la première étape de l’assistant, assurez-vous que l’option Délimité est sélectionnée, puis cliquez sur Suivant.

  5. Dans la deuxième étape de l’assistant, assurez-vous que la case Virgule est cochée, puis cliquez sur Suivant.

  6. Dans la troisième étape de l’assistant, cliquez sur Terminer.

L’adresse postale doit maintenant résider dans la colonne d’origine et la colonne précédemment vide doit maintenant contenir tout ce qui se trouvait après la virgule dans les adresses d’origine. En d’autres termes, le numéro de suite est dans sa propre colonne. Avec vos données dans ces conditions, il est facile d’utiliser le filtrage pour afficher ou extraire les adresses de rue uniques.

Si vous ne souhaitez pas diviser définitivement les adresses en deux colonnes, vous pouvez utiliser une formule pour déterminer les doublons. En supposant que la liste d’adresses est triée, vous pouvez utiliser une formule similaire à la suivante:

=IF(OR(ISERROR(FIND(",",A3)),ISERROR(FIND(",",A2))), "",IF(LEFT(A3,FIND(",",A3))=LEFT(A2,FIND(",",A2)), "Duplicate",""))

Cette formule suppose que les adresses à vérifier sont dans la colonne A et que cette formule est placée quelque part dans la ligne 3 d’une colonne différente. Il vérifie d’abord s’il y a une virgule dans l’adresse de la ligne actuelle ou l’adresse de la ligne précédente. S’il n’y a pas de virgule dans l’une ou l’autre des adresses, cela suppose qu’il n’y a pas de doublon possible.

S’il y a une virgule dans les deux, la formule vérifie la partie des adresses avant la virgule. S’ils correspondent, alors le mot « Duplicate »

est retourné; s’ils ne correspondent pas, rien n’est retourné.

Le résultat de la copie de la formule dans la colonne (afin qu’une formule corresponde à chaque adresse) est que vous aurez le mot «Dupliquer»

apparaissent à côté des adresses qui correspondent à la première partie de l’adresse précédente. Vous pouvez ensuite déterminer ce que vous voulez faire avec les doublons trouvés.

Une autre option consiste à utiliser une macro pour déterminer vos éventuels doublons.

Une macro pour déterminer les doublons peut être conçue de plusieurs manières; celui montré ici vérifie simplement les X premiers caractères d’une valeur « clé » par rapport à une plage et renvoie l’adresse de la première cellule correspondante.

Function NearMatch(vLookupValue, rng As Range, iNumChars)

Dim x As Integer     Dim sSub As String

Set rng = rng.Columns(1)

sSub = Left(vLookupValue, iNumChars)

For x = 1 To rng.Cells.Count         If Left(rng.Cells(x), iNumChars) = sSub Then             NearMatch = rng.Cells(x).Address             Exit Function         End If     Next     NearMatch = CVErr(xlErrNA)

End Function

Par exemple, supposons que vos adresses sont dans la plage A2: A100.

Dans la colonne B, vous pouvez utiliser cette fonction NearMatch pour renvoyer les adresses d’éventuels doublons. Dans la cellule B2, entrez la formule suivante:

=NearMatch(A2,A3:A$100,12)

Le premier paramètre de la fonction (A2) est la cellule que vous souhaitez utiliser comme « clé ». Les 12 premiers caractères de cette cellule sont comparés aux 12 premiers caractères de chaque cellule de la plage A3: 100 A $. Si une cellule se trouve dans cette plage dans laquelle les 12 premiers caractères correspondent, alors l’adresse de cette cellule est renvoyée par la fonction. Si aucune correspondance n’est trouvée, l’erreur # N / A est renvoyée. Si vous copiez la formule de B2 vers le bas, dans les cellules B3: B100, chaque adresse correspondante de la colonne A est comparée à toutes les adresses en dessous. Vous vous retrouvez avec une liste de doublons possibles dans la liste d’origine.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2782) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Removing_Duplicates_Based_on_a_Partial_Match [Suppression des doublons sur la base d’une correspondance partielle].