Accéder au contenu principal

Kutools for Office — Une Suite. Cinq Outils. Accomplissez Plus.

Comment comparer des valeurs séparées par des virgules dans deux cellules et retourner les valeurs en double ou uniques dans Excel ?

Author Siluvia Last modified

Comme le montre la capture d'écran ci-dessous, il y a deux colonnes - Colonne1 et Colonne2, chaque cellule de la colonne contient des nombres séparés par des virgules. Pour comparer les nombres séparés par des virgules dans la Colonne1 avec le contenu des cellules de la même ligne de la Colonne2 et retourner toutes les valeurs en double ou uniques, que pourriez-vous faire ?

Ce tutoriel propose deux méthodes pour vous aider à accomplir cette tâche.

compare comma separated values in two cells


Comparer des valeurs séparées par des virgules dans deux cellules et retourner les valeurs en double ou uniques avec des formules

Cette section fournit deux formules pour vous aider à comparer les valeurs séparées par des virgules dans deux cellules et retourner les valeurs en double ou uniques entre elles.

Remarque : Les formules suivantes ne fonctionnent que dans Excel pour 365. Si vous utilisez d'autres versions d'Excel, essayez d'utiliser la méthode VBA ci-dessous.

Prenons les deux colonnes ci-dessus comme exemple, pour comparer les nombres séparés par des virgules dans la Colonne1 avec les nombres séparés par des virgules dans la même ligne de la Colonne2 et retourner les valeurs en double ou uniques, procédez comme suit.

sample data

Retourner les valeurs en double

1. Sélectionnez une cellule pour afficher les nombres en double entre les deux cellules spécifiées avec des nombres séparés par des virgules, dans ce cas, je sélectionne la cellule D2, puis entrez la formule ci-dessous et appuyez sur la touche Entrée. Sélectionnez la cellule de la formule et faites glisser son poignée de recopie automatique vers le bas pour obtenir les nombres en double entre les cellules des autres lignes.

=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))

 compare to return duplicate values

Retourner les valeurs uniques

Pour retourner les nombres uniques entre les deux cellules spécifiées avec des nombres séparés par des virgules dans la même ligne, la formule suivante peut aider.

1. Sélectionnez une cellule pour afficher les nombres uniques, dans ce cas, je sélectionne la cellule E2, puis entrez la formule ci-dessous et appuyez sur la touche Entrée. Sélectionnez la cellule de la formule et faites glisser sa poignée de recopie automatique vers le bas pour obtenir les nombres uniques entre les cellules des autres lignes.

=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))

compare to return unique values

Remarques :

1) Les deux formules ci-dessus ne peuvent être appliquées que dans Excel pour 365. Si vous utilisez une version d'Excel autre que Excel pour 365, veuillez essayer la méthode VBA suivante.
2) Les cellules à comparer doivent être adjacentes les unes aux autres dans la même ligne ou colonne.
a screenshot of kutools for excel ai

Découvrez la magie d'Excel avec Kutools AI

  • Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
  • Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
  • Codage VBA : Écrivez et implémentez du code VBA sans effort.
  • Interprétation des formules : Comprenez facilement des formules complexes.
  • Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
Améliorez vos capacités Excel avec des outils alimentés par l'IA. Téléchargez maintenant et découvrez une efficacité sans précédent !

Comparer deux colonnes avec des valeurs séparées par des virgules et retourner les valeurs en double ou uniques avec VBA

La fonction définie par l'utilisateur fournie dans cette section permet de comparer les valeurs séparées par des virgules dans deux cellules spécifiées et de retourner les valeurs en double ou uniques entre elles. Veuillez procéder comme suit.

Reprenons le même exemple qu'avant, pour comparer les nombres séparés par des virgules dans la Colonne1 avec les nombres séparés par des virgules dans la même ligne de la Colonne2 et retourner les valeurs en double ou uniques, essayez la fonction définie par l'utilisateur dans cette section.

 sample data

1. Dans le classeur ouvert, appuyez sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.

2. Dans la fenêtre Microsoft Visual Basic for Applications, cliquez sur Insertion > Module, et copiez le code VBA suivant dans la fenêtre Module (Code).

 copy anf paste the code into the module

Code VBA : Comparer des valeurs séparées par des virgules dans deux cellules et retourner les valeurs en double/uniques

Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
    Dim R1Arr As Variant
    Dim R2Arr As Variant
    Dim Ans1 As String
    Dim Ans2 As String
    Dim Separator As String
    Dim d1 As New Dictionary
    Dim d2 As New Dictionary
    Dim d3 As New Dictionary
    Application.Volatile

    Separator = ", "
    
    R1Arr = Split(Rng1.Value, Separator)
    R2Arr = Split(Rng2.Value, Separator)
    
    Ans1 = ""
    Ans2 = ""
    
    For Each ch In R2Arr
        If Not d2.Exists(ch) Then
            d2.Add ch, "1"
        End If
    Next
    
    If Op Then
        For Each ch In R1Arr
            If d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans1 = Ans1 & ch & Separator
                End If
            End If
        Next
        If Ans1 <> "" Then
            Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
        End If
        COMPARE = Ans1
    Else
        For Each ch In R1Arr
            If Not d1.Exists(ch) Then
                d1.Add ch, "1"
            End If
        Next
        
        For Each ch In R1Arr
            If Not d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        For Each ch In R2Arr
            If Not d1.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        If Ans2 <> "" Then
            Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
        End If
        COMPARE = Ans2
    End If

End Function

3. Après avoir collé le code dans la fenêtre Module (Code), allez cliquer sur Outils > Références pour ouvrir la fénêtre Références – VBAProject, cochez la case Microsoft Scripting Runtime, puis cliquez sur le bouton OK.

 click Tools > References and check Microsoft Scripting Runtime box

4. Appuyez sur les touches Alt + Q pour fermer la fenêtre Microsoft Visual Basic for Applications.

5. Maintenant, vous devez appliquer deux fonctions séparément pour retourner les valeurs en double et uniques à partir de deux cellules contenant des valeurs séparées par des virgules.

Retourner les valeurs en double

Sélectionnez une cellule pour afficher les nombres en double, dans cet exemple, je sélectionne la cellule D2, puis entrez la formule ci-dessous et appuyez sur la touche Entrée pour obtenir les nombres en double entre les cellules A2 et B2.

Sélectionnez la cellule de la formule et faites glisser sa poignée de recopie automatique vers le bas pour obtenir les nombres en double entre les cellules des autres lignes.

=COMPARE(A2,B2,TRUE)

 use formula to return duplicate value

Retourner les valeurs uniques

Sélectionnez une cellule pour afficher les nombres uniques, dans cet exemple, je sélectionne la cellule E2, puis entrez la formule ci-dessous et appuyez sur la touche Entrée pour obtenir les nombres uniques entre les cellules A2 et B2.

Sélectionnez la cellule de la formule et faites glisser sa poignée de recopie automatique vers le bas pour obtenir les nombres uniques entre les cellules des autres lignes.

=COMPARE(A2,B2,FALSE)

 use formula to return unique value

Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données avec : Exécution intelligente | Générer du code | Créer des formules personnalisées | Analyser des données et générer des graphiques | Appeler les Fonctions améliorées de Kutools
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons | Supprimer les lignes vides | Combinez les colonnes ou les cellules sans perte de données | Arrondir sans formule...
Super RECHERCHEV : Recherche multi-critères | Recherche multi-valeurs | Recherche multi-feuilles | Correspondance floue...
Liste déroulante avancée : Créer rapidement une liste déroulante | Liste déroulante dépendante | Liste déroulante à sélection multiple...
Gestionnaire de colonnes : Ajouter un nombre spécifique de Colonnes | Déplacer des Colonnes | Alterner l’état de visibilité des Colonnes masquées | Comparer des plages & Colonnes...
Fonctionnalités phares : Mise au point de la grille | Affichage de conception | Barre de formule améliorée | Gestionnaire de Classeur & Feuille de calcul | Bibliothèque d’AutoTexte | Sélecteur de date | Merge Worksheets | Chiffrer/Déchiffrer les cellules | Envoyer un e-mail par liste | Super Filtre | Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...)...
Top15 des ensembles d’outils :12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...) |50+ Types de graphiques (Diagramme de Gantt, ...) |40+ Formules pratiques (Calculer l’âge en fonction de la date de naissance, ...) |19 outils d’insertion (Insérer un code QR, Insérer une image depuis le chemin, ...) |12 outils de conversion (Convertir en mots, Conversion de devises, ...) |7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...) | ... et bien plus encore
Utilisez Kutools dans la langue de votre choix – disponible en Anglais, Espagnol, Allemand, Français, Chinois et plus de40 autres !

Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte l’interface par onglets à Office, simplifiant considérablement votre travail.

  • Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de50 % et réduit des centaines de clics de souris chaque jour !

Tous les modules complémentaires Kutools. Une seule installation

La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.

Excel Word Outlook Tabs PowerPoint
  • Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Un installateur, une licence — installation en quelques minutes (compatible MSI)
  • Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
  • Essai complet30 jours — sans inscription, ni carte bancaire
  • Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels