Comment séparer les entrées non identiques de deux colonnes de la feuille Excel [fermé]

-1

J'ai deux colonnes dans une feuille Excel, comme indiqué ci-dessous.

Column A    Column B
87            87
107           107
108           108
117           117
119           119
153           153
170           170
174           174
209           209
409106386989  409014007285
409110099164  174

Ici, les deux colonnes A et B contiennent 11 entrées.
Maintenant, je dois trouver les entrées non identiques des deux colonnes.
c'est-à-dire que les entrées 409106386989 et 409110099164 ne sont présentes que dans la colonne A mais pas dans la colonne B.
Je dois donc séparer ces entrées de la colonne A.

De même, les entrées 409014007285 ne figurent que dans la colonne B mais pas dans la colonne A.
Il existe également deux entrées 174 dans la colonne B mais une seule entrée dans la colonne A.
Je dois donc séparer ces deux entrées, à savoir 409014007285 et 174 de la colonne B.

Donc, la sortie devrait être comme ci-dessous.

    Column A               Column B       A but not B        B but not A
          87                     87      409106386989                174
         107                    107      409110099164       409014007285
         108                    108
         117                    117
         119                    119
         153                    153
         170                    170
         174                    174
         209                    209
409106386989           409014007285
409110099164                    174

Je fais ce processus manuellement, ce qui prend beaucoup de temps lorsque les entrées se comptent par milliers.

Est-il possible de faire cela en exécutant du code (Utilisation de scripts VB) ...?

Badesab
la source
Qu'avez-vous essayé jusqu'à présent? La question était terriblement formatée (merci à @DevonParsons pour un bon montage) et se lit comme si vous n'aviez fait aucun effort.
Dave
De plus, les paires sont-elles formatées par paires ou faudrait-il le faire également? Nous ne pouvons pas vous aider à résoudre un problème spécifique à moins que vous n'ayez un problème spécifique avec les méthodes que vous avez déjà essayées. Peut-être pouvez-vous nous expliquer pourquoi vous êtes bloqué.
Raystafarian
Références structurées dans les tableaux Excel et le langage de programmation AutoIt est livré avec une bibliothèque excel.au3.
M. Hargrove

Réponses:

1

Essayez ceci:

Sub GetUnique()
    Dim N As Long, M As Long, i As Long, K As Long, L As Long
    Dim r As Range
    N = Cells(Rows.Count, "A").End(xlUp).Row
    M = Cells(Rows.Count, "B").End(xlUp).Row

    K = 1
    For i = 1 To N
        v = Cells(i, "A").Value
        Set r = Range(Cells(1, 2), Cells(M, 2)).Find(v)
        If r Is Nothing Then
            Cells(K, "C").Value = v
            K = K + 1
        End If
    Next i

    K = 1
    For i = 1 To M
        v = Cells(i, "B").Value
        Set r = Range(Cells(1, 1), Cells(N, 1)).Find(v)
        If r Is Nothing Then
            Cells(K, "D").Value = v
            K = K + 1
        End If
    Next i

End Sub

EDIT # 1

Cette macro traite les données des colonnes A et B. Les données de sortie sont placées dans les colonnes C et D.

Pour en savoir plus sur les macros en général, voir:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

et

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Les macros doivent être activées pour que cela fonctionne!

EDIT # 2

Cette macro, similaire à la première, gérera plusieurs occurrences de la même valeur dans les deux colonnes A et B

Sub FindNonDuplicates()
    Range("A:A").Copy Range("C1")
    Range("B:B").Copy Range("D1")
    Dim nC As Long, nD As Long, v As Variant
    Dim i As Long, j As Long
    nC = Cells(Rows.Count, "C").End(xlUp).Row
    nD = Cells(Rows.Count, "D").End(xlUp).Row

    For i = nC To 1 Step -1
        v = Cells(i, "C").Value
        For j = 1 To nD
            If v = Cells(j, "D").Value Then
                Cells(i, "C").Delete Shift:=xlUp
                Cells(j, "D").Delete Shift:=xlUp
                nD = nD - 1
                GoTo qwerty
            End If
        Next j
qwerty:
    Next i
End Sub
Gary's Student
la source
1
Que fait ce code? Comment ça marche? Comment l'exécuterait-il et / ou le modifierait-il s'il avait une structure différente? Développer ce que fait le code le rend plus utile pour quelqu'un qui ne connaît pas bien VBA.
Raystafarian
@Raystafarian Merci pour vos commentaires! Je vais éditer la réponse pour fournir plus d'informations
Gary's Student
@ DaveRook Vous avez raison !! Je vais regarder dans la résolution de ce bug!
Étudiant de Gary