Nel caso ti stia chiedendo come confrontare 2 colonne di dati con righe in milioni ed estrarre i valori univoci tra entrambe le colonne, allora 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. Voglio che una macro controlli più di 40 k righe di dati in entrambe le colonne e quindi estragga l'elenco di voci univoche da ciascuna colonna nella colonna successiva, ad esempio le colonne C & D rispettivamente. In questo esempio, sto prendendo solo 40 righe di dati di esempio.
Puoi trovare la domanda originale qui
Di seguito lo snapshot 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 seleziona Visual Basic
- Copia il codice sottostante nel modulo standard
Sub PullUniques() Dim rngCell As Range For Every 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 Per ogni 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 precedente è pronta per l'esecuzione; o possiamo premere il tasto F5 -se sei attualmente nella schermata dell'editor di Visual Basic -oppure possiamo usare i tasti di scelta rapida "ALT + F8", seleziona la tua macro e fai clic sul pulsante Esegui
- L'elenco univoco dalle 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 di dichiarare rngCell As Range è che vogliamo assegnare l'intervallo di esempio "A2: A40" con un nome specifico, ad esempio "rngCell" nel nostro esempio
- Per ogni rngCell nell'intervallo ("A2: A40"); controlleremo per 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 i criteri rngCell è uguale a zero, quindi nella colonna C verrà salvato il valore memorizzato in rngCell
- Allo stesso modo, eseguiremo For Each Loop per la colonna B ed estrarremo 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 la colonna D (Risultati - Esiste nell'Elenco 2 ma non nell'Elenco 1). Nel caso in cui abbiamo requisiti simili ma il numero di colonne è superiore a due, è necessario modificare il codice per ottenere il risultato.
Se ti è piaciuto il nostro blog, condividilo con i tuoi amici su Facebook. E puoi anche seguirci su Twitter e Facebook.
Ci piacerebbe avere tue notizie, facci sapere come possiamo migliorare, completare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a sito di posta elettronica