_Si vous vous demandez comment comparer 2 colonnes de données ayant des lignes en millions et extraire les valeurs uniques parmi les deux colonnes, vous devriez lire cet article. Nous utiliserons le code VBA pour comparer deux colonnes de données et montrer la différence dans les deux colonnes suivantes. Question: Il existe plusieurs valeurs qui existent dans les colonnes A et B.Je veux qu’une macro vérifie plus de 40 k lignes de données dans les deux colonnes, puis extrait la liste des entrées uniques de chacune des colonnes dans la colonne suivante, c’est-à-dire colonnes C et D respectivement. Dans cet exemple, je prends seulement 40 lignes d’exemples de données.

Voici un aperçu des données:

img1

===

Pour comparer la liste de deux colonnes, nous devons suivre les étapes ci-dessous pour lancer l’éditeur VB:

Cliquez sur l’onglet Développeur Dans le groupe Code, sélectionnez Visual Basic

  • Copiez le code ci-dessous dans le module standard

img2

  • La macro ci-dessus est prête à s’exécuter; soit nous pouvons appuyer sur la touche F5 –si vous êtes actuellement dans l’écran Visual Basic Editor –ou nous pouvons utiliser les touches de raccourci «ALT + F8», sélectionnez votre macro et cliquez sur le bouton exécuter

Sub PullUniques()

Dim rngCell As Range

For Each rngCell In Range("A2:A40")

If WorksheetFunction.CountIf(Range("B2:B40"), rngCell) = 0 Then

Range("C" & Rows.Count).End(xlUp).Offset(1) = rngCell

End If

Next

For Each rngCell In Range("B2:B40")

If WorksheetFunction.CountIf(Range("A2:A40"), rngCell) = 0 Then

Range("D" & Rows.Count).End(xlUp).Offset(1) = rngCell

End If

Next

End Sub

img3

  • La liste unique des colonnes A et B sera générée automatiquement dans les colonnes C et D

img4

img5

Explication du code:

Dans le code ci-dessus, nous utiliserons la fonction IF avec la boucle For pour obtenir le résultat.

Nous déclarons Dim rngCell comme plage; le but de la déclaration de rngCell As Range est que nous voulons assigner la plage d’échantillons «A2: A40» avec un nom spécifique, c’est-à-dire «rngCell» dans notre exemple For Each rngCell In Range («A2: A40»); nous vérifierons chaque cellule de «rngCell» avec une condition If WorksheetFunction.CountIf (Range (« B2: B40 »), rngCell) = 0 Then; cette ligne de code utilise la fonction COUNTIF VBA pour vérifier la plage de critères B2: B40 avec les critères rngCell est égal à zéro, puis dans la colonne C, la valeur stockée dans rngCell sera enregistrée De même, nous exécuterons For Each Loop pour la colonne B & extraire les valeurs uniques de la colonne D Conclusion: Nous pouvons obtenir la liste unique de texte ou de valeurs de chacune des colonnes; le nom de l’en-tête de la colonne C (Résultats – Existe dans la liste 1 mais pas dans la liste 2) & colonne D (Résultats – Existe dans la liste 2 mais pas dans la liste 1). Dans le cas où nous avons des exigences similaires mais que le nombre de colonnes est supérieur à deux, nous devons modifier le code pour obtenir le résultat.

Si vous avez aimé nos blogs, partagez-les avec vos amis sur Facebook. Et vous pouvez également nous suivre sur Twitter et Facebook.

image 29

Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer, compléter ou innover notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]