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.

Di seguito è riportata l’istantanea dei dati:

img1

===

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

img2

  • 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

img3

  • 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

img4

  • L’elenco univoco delle colonne A e B verrà generato automaticamente nelle colonne C e D

img5

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.

image 29

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]