Confronta 2 Colonne con VBA in Microsoft Excel
Nel caso ti stia chiedendo come confrontare 2 colonne di dati con righe in milioni ed estrarre i valori univoci tra entrambe le colonne, dovresti leggere questo articolo. Useremo il codice VBA per confrontare due colonne di dati e mostrare la differenza nelle due colonne successive .
Domanda: esistono più valori nelle colonne A e B. Desidero che una macro controlli più di 40.000 righe di dati in entrambe le colonne e quindi estragga l’elenco di voci univoche da ciascuna colonna nella colonna successiva, ad es. colonne C e D rispettivamente. In questo esempio, sto prendendo solo 40 righe di dati di esempio.
Puoi trovare la domanda originale http://www.excelforum.com/excel-programming-vba-macros/1094194-compare-data-in-columns-a-and-b-show-differences-in-columns-c-and -d.html [qui]
Di seguito è riportata l’istantanea dei dati:
===
Per confrontare l’elenco di due colonne, dobbiamo seguire i passaggi seguenti per avviare l’editor VB:
Fare clic sulla scheda Sviluppatore. Dal gruppo Codice selezionare Visual Basic
-
Copia il codice seguente nel modulo standard
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
-
La macro sopra è pronta per essere eseguita; o possiamo premere il tasto F5 –se sei attualmente nella schermata di Visual Basic Editor –o possiamo usare i tasti di scelta rapida “ALT + F8”, seleziona la tua macro e fai clic sul pulsante Esegui
-
L’elenco univoco delle colonne A e B verrà generato automaticamente nelle colonne C e D
Spiegazione del codice:
Nel codice sopra, useremo la funzione IF insieme al ciclo For per ottenere il risultato.
Dichiariamo Dim rngCell As Range; lo scopo della dichiarazione di rngCell As Range è che vogliamo assegnare all’intervallo di esempio “A2: A40” un nome specifico, ad esempio “rngCell” nel nostro esempio For Each rngCell In Range (“A2: A40”); controlleremo ogni cella in “rngCell” con una condizione If WorksheetFunction.CountIf (Range (“B2: B40”), rngCell) = 0 Then; questa riga di codice utilizza la funzione COUNTIF VBA per controllare l’intervallo di criteri B2: B40 con criteri rngCell è uguale a zero, quindi nella colonna C, il valore memorizzato in rngCell verrà salvato Allo stesso modo, eseguiremo For Each Loop per la colonna B ed estrai i valori univoci nella colonna D Conclusione: possiamo ottenere l’elenco univoco di testo o valori da ciascuna colonna; il nome dell’intestazione della colonna C (Risultati – Esiste nell’elenco 1 ma non nell’elenco 2) e colonna D (Risultati – Esiste nell’elenco 2 ma non nell’elenco 1). Nel caso in cui abbiamo un requisito simile ma il numero di colonne è più di due, dobbiamo modificare il codice per ottenere il risultato.
Se ti sono piaciuti i nostri blog, condividilo con i tuoi amici su Facebook. Puoi anche seguirci su Twitter e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare, integrare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]