Passer au contenu principal

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

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 Column1 avec le contenu des cellules dans la même ligne de Column2 et renvoyer toutes les valeurs en double ou uniques, que pourriez-vous faire ?

Ce didacticiel fournit deux méthodes pour vous aider à accomplir cette tâche.


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

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

Notes: 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.

Prenez les deux colonnes ci-dessus comme exemple, pour comparer les nombres séparés par des virgules dans Column1 avec les nombres séparés par des virgules dans la même ligne de Column2 et renvoyer des valeurs en double ou uniques, veuillez procéder comme suit.

Renvoyer les valeurs en double

1. Sélectionnez une cellule pour générer 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 le Entrer clé. Sélectionnez la cellule de formule et faites-la glisser Poignée de remplissage automatique vers le bas pour obtenir les numéros 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, "")))

Renvoyer des valeurs uniques

Pour renvoyer 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 vous aider.

1. Sélectionnez une cellule pour sortir les nombres uniques, dans ce cas, je sélectionne la cellule E2, puis entrez la formule ci-dessous et appuyez sur le Entrer clé. Sélectionnez la cellule de formule et faites-la glisser Poignée de remplissage automatique vers le bas pour obtenir les numéros uniques entre les cellules des autres lignes.

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

Notes:

1) Les deux formules ci-dessus ne peuvent être appliquées que dans Excel pour 365. Si vous utilisez une version d'Excel autre qu'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.

Comparez deux colonnes avec des valeurs séparées par des virgules et renvoyez des 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 renvoyer les valeurs en double ou les valeurs uniques entre elles. Veuillez procéder comme suit.

Prenez le même exemple que ci-dessus, pour comparer les nombres séparés par des virgules dans Column1 avec les nombres séparés par des virgules dans la même ligne de Column2 et renvoyer des valeurs en double ou uniques, veuillez essayer la fonction définie par l'utilisateur dans cette section.

1. Dans le classeur d'ouverture, appuyez sur la touche autre + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. dans le Microsoft Visual Basic pour applications fenêtre, cliquez sur insérer > Module, et copiez le code VBA suivant dans le Module (Code) fenêtre.

Code VBA : comparer les valeurs séparées par des virgules dans deux cellules et renvoyer des 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 le Module (Code) fenêtre, allez cliquer Outils > Bibliographie ouvrir le Références - VBAProject fenêtre, vérifiez la Exécution de scripts Microsoft boîte, puis cliquez sur le OK .

4. appuie sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.

5. Vous devez maintenant appliquer deux fonctions séparément pour renvoyer les valeurs en double et uniques à partir de deux cellules de valeur séparées par des virgules.

Renvoyer la valeur 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 Entrer clé pour obtenir les numéros en double entre les cellules A2 et B2.

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

=COMPARE(A2,B2,TRUE)

Renvoyer des valeurs uniques

Sélectionnez une cellule pour générer les nombres uniques, dans cet exemple, je sélectionne la cellule E2, puis entrez la formule ci-dessous et appuyez sur la touche Entrer clé pour obtenir les numéros uniques entre les cellules A2 et B2.

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

=COMPARE(A2,B2,FALSE)

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez 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 les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement votre travail

  • Activer l'édition 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é de 50% et réduit des centaines de clics de souris chaque jour!
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations