Comment supprimer les doublons d'une cellule dans Excel ?

  • Partage Ça
Michael Brown

Il existe trois façons de trouver et de supprimer les doublons dans une cellule d'Excel, choisissez celle qui vous convient le mieux.

Lorsqu'il s'agit de supprimer des valeurs ou des lignes en double, Microsoft Excel offre une multitude d'options différentes. Mais lorsqu'il s'agit de supprimer du texte identique dans une cellule donnée, Excel ne fournit... rien. Aucun outil, aucune fonction, aucune formule, rien. Cela nous empêchera-t-il d'atteindre notre objectif ? En aucun cas. Si Excel ne dispose pas de la fonction dont nous avons besoin, allons en écrire une nous-mêmes :)

    Comment supprimer les mots répétés dans une cellule Excel

    Problème : Vous avez les mêmes mots ou chaînes de texte dans une cellule et vous souhaitez supprimer la deuxième répétition et toutes les répétitions suivantes.

    Solution : une fonction personnalisée définie par l'utilisateur ou une macro VBA.

    Fonction définie par l'utilisateur pour supprimer les doublons dans une cellule

    Pour éliminer le texte en double dans une cellule, vous pouvez utiliser la fonction définie par l'utilisateur (UDF) suivante, nommée RemoveDupeWords :

    Function RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count> ; 0 ThenRemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    Comment insérer le code de la fonction dans votre classeur ?

    Pour ajouter le code ci-dessus à votre Excel, voici ce que vous devez faire :

    1. Appuyez sur Alt + F11 pour ouvrir l'éditeur Visual Basic.
    2. Dans le volet de gauche, cliquez à droite sur Ce manuel de travail et sélectionnez Insérer > ; Module .
    3. Collez le code ci-dessus dans le fichier Code fenêtre.

    Pour plus d'informations, veuillez consulter la section Comment insérer un code VBA dans Excel.

    Syntaxe de la fonction RemoveDupeWords

    Notre fonction nouvellement créée pour supprimer le texte en double dans une cellule a la syntaxe suivante :

    RemoveDupeWords(texte, [délimiteur])

    Où :

    • Texte (obligatoire) - une chaîne de caractères ou une cellule dont vous voulez supprimer le texte répété.
    • Délimiteur (facultatif) - le délimiteur par lequel le texte répété est séparé. S'il est omis, un espace est utilisé comme délimiteur.

    La fonction est non sensible à la casse ce qui signifie que les lettres minuscules et majuscules sont traitées comme des caractères identiques.

    Comment utiliser la fonction RemoveDupeWords ?

    Une fois que le code de la fonction est ajouté à votre classeur, vous pouvez l'utiliser dans vos formules de la même manière que vous utilisez les fonctions intégrées d'Excel.

    Il suffit de commencer à taper le nom de la fonction après le signe égal pour qu'il apparaisse dans l'intellisense de la formule. Double-cliquez sur la fonction pour l'insérer dans une cellule. Définissez les arguments, tapez la parenthèse fermante, appuyez sur Entrée et votre formule est terminée.

    Par exemple, pour supprimer les mots en double séparés par une virgule et un espace dans A2, saisissez la formule ci-dessous dans B2, puis faites-la glisser vers le bas dans autant de cellules que nécessaire :

    =RemoveDupeWords(A2, ", ")

    Vous obtiendrez ainsi une liste de mots uniques ou de sous-chaînes séparées par un signe virgule et espace :

    Si vous préférez obtenir une liste séparée par des virgules, utilisez alors seulement une virgule pour le délimiteur :

    =RemoveDupeWords(A2, ",")

    Si vos données sources sont séparées par un espace le second argument doit être " " ou omis :

    =RemoveDupeWords(A2)

    Comme toute autre fonction Excel, notre UDF se recalcule automatiquement lorsque les données sources changent, de sorte que vos résultats seront toujours à jour.

    Macro VBA permettant de supprimer le texte en double dans plusieurs cellules à la fois

    Si vous cherchez à supprimer le texte répété de plusieurs cellules en une seule fois, vous pouvez appeler la fonction RemoveDupeWords Dans ce cas, le délimiteur est codé en dur et vous devrez mettre à jour le code de la macro chaque fois que le délimiteur change. Vous pouvez aussi écrire quelques variantes de code pour les délimiteurs les plus courants, par exemple un espace, une virgule ou une virgule et un espace, et donner à vos macros des noms significatifs, par exemple RemoveDupesDelimSpace .

    Le code de la macro est le suivant :

    Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    Dans le code ci-dessus, le délimiteur est un virgule et espace Pour utiliser un autre délimiteur, remplacez ", " par un ou plusieurs autres caractères dans cette ligne de code :

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    Remarque : pour que la macro fonctionne, son code et celui de la fonction RemoveDupeWords doivent être placés sur le même module.

    Comment utiliser la macro

    Insérez le code de la macro dans votre propre classeur ou ouvrez notre classeur type avec le code, puis effectuez les étapes suivantes pour exécuter la macro.

    1. Sélectionnez une plage de cellules dont vous souhaitez supprimer le texte répété.
    2. Appuyez sur Alt + F8 pour ouvrir le Macro de la boîte de dialogue.
    3. Dans la liste des macros, sélectionnez RemoveDupeWords2 .
    4. Cliquez sur Exécuter .

    Pour plus de détails, veuillez consulter la section Comment exécuter une macro dans Excel.

    Remarque : comme l'action d'une macro ne peut être défait nous vous recommandons vivement de sauvegarder votre classeur juste avant d'utiliser la macro. De cette façon, si quelque chose ne va pas, vous pouvez simplement fermer et rouvrir le classeur, et vous serez exactement à l'endroit où vous étiez. Ou vous pouvez simplement faire une copie de la ou des feuilles de calcul qui pourraient être affectées par la macro.

    Comment supprimer les caractères en double dans une cellule ?

    Problème : Vous avez plusieurs occurrences du même caractère dans une cellule, alors que chaque cellule ne devrait contenir qu'une seule occurrence d'un caractère donné.

    Solution : une fonction personnalisée définie par l'utilisateur ou une macro VBA.

    Fonction définie par l'utilisateur pour supprimer les caractères répétés

    Pour supprimer les caractères dupliqués dans une cellule en ne conservant que les premières occurrences, vous pouvez utiliser la fonction définie par l'utilisateur suivante, nommée RemoveDupeChars :

    Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & ; char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function

    Pour insérer le code de la fonction dans votre classeur, les étapes sont exactement les mêmes que dans l'exemple précédent.

    Syntaxe de la fonction RemoveDupeChars

    La syntaxe de cette fonction personnalisée est aussi simple que possible - un seul argument est requis :

    RemoveDupeChars(texte)

    texte est une chaîne ou une cellule dont vous souhaitez supprimer les caractères en double.

    La fonction est sensible à la casse et traite les lettres minuscules et majuscules comme des caractères différents.

    Comment utiliser la fonction RemoveDupeChars ?

    Tout ce que nous avons dit sur l'utilisation de RemoveDupeWords est vrai pour RemoveDupeChars Donc, sans trop entrer dans la théorie, passons directement à un exemple.

    Pour supprimer les caractères en double de la colonne A à partir de A2, saisissez cette formule en B2 et copiez-la vers le bas :

    =RemoveDupeChars(A2)

    Comme vous pouvez le voir dans l'image ci-dessous, la fonction traite avec succès différents types de caractères, notamment les lettres, les chiffres et les symboles spéciaux :

    Astuce. Si vos personnages sont séparés les uns des autres par un certain... délimiteur tel qu'un espace, une virgule ou un trait d'union, puis utilisez la fonction RemoveDupeWords comme indiqué dans l'exemple précédent.

    Macro VBA pour supprimer les mêmes caractères d'une cellule

    Comme RemoveDupeWords le RemoveDupeChars peut également être appelée à l'intérieur d'une macro :

    Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

    Comme cet UDF n'utilise pas de délimiteur, vous n'aurez pas à faire d'ajustements dans le code.

    Remarque : pour que la macro fonctionne, son code et le code de l'UDF RemoveDupeChars doivent être placés sur le même module dans l'éditeur VBA.

    Comment utiliser la macro

    En supposant que vous ayez déjà inséré le code de la macro dans votre classeur ou que vous ayez ouvert notre classeur type contenant le code, lancez la macro de cette manière.

    1. Sélectionnez une plage de cellules dont vous souhaitez supprimer les caractères répétés.
    2. Appuyez sur Alt + F8 pour ouvrir le Macro de la boîte de dialogue.
    3. Dans la liste des macros, sélectionnez RemoveDupeChars2 .
    4. Cliquez sur Exécuter .

    Supprimer les sous-chaînes dupliquées avec Ultimate Suite

    Au début de ce tutoriel, il a été mentionné que Microsoft Excel ne dispose pas d'une fonction intégrée pour supprimer les doublons dans une cellule, mais notre Suite Ultimate le fait !

    Vous pouvez le trouver dans le Duplicate Remover dans le menu déroulant de l'écran Ablebits Data dans l'onglet Déduplication Si le Suppression des sous-chaînes dupliquées n'apparaît pas dans votre Excel, vérifiez que vous avez installé la dernière version de Ultimate Suite (un essai gratuit peut être téléchargé ici).

    Pour supprimer des mots ou du texte répétés dans plusieurs cellules en 5 secondes (une seconde par étape :), voici ce que vous devez faire :

    1. Sélectionnez vos données sources et lancez le Suppression des sous-chaînes dupliquées outil.
    2. Précisez le délimiteur .
    3. Définir s'il faut traiter délimiteurs consécutifs comme un seul (par défaut).
    4. Choisissez si vous souhaitez effectuer sensible à la casse ou insensible à la casse recherche.
    5. Cliquez sur Retirer .

    Fini les manipulations de VBA ou de formules, place aux résultats rapides et précis.

    Pour en savoir plus sur ce super module complémentaire, visitez sa page d'accueil ou, mieux encore, téléchargez une version d'évaluation ci-dessous et essayez-le !

    Voilà comment supprimer le texte en double dans une cellule. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Téléchargements disponibles

    Exemples pour supprimer les doublons dans une cellule (fichier .xlsm)

    Ultimate Suite 14 jours version entièrement fonctionnelle (fichier .exe)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.