Come confrontare due colonne e trovare differenze in Excel?


45

Ho due colonne in Excel che voglio confrontare e trovare le differenze tra loro.

Supponiamo che:

  • La colonna A ha 50 numeri, ovvero 0511234567
  • Col B ha 100 numeri nello stesso formato

Penso che questo possa essere fatto con le funzioni e le formule integrate di Excel. Mi sembra fuori tema.
Matt Handy,

puoi per favore specificare come farlo?

Quindi vuoi sapere quali numeri sono solo nella colonna A e quali numeri sono solo nella colonna B.
Tom Shaw,

Vedi questa domanda SO per la tua risposta.
Patrick Honorez,

No, prima voglio conoscere tutti quei numeri che non sono nel Col A ma nel Col B e poi voglio conoscere tutti quei numeri che sono nel Col A ma non nel Col B.

Risposte:


55

Utilizzo della formattazione condizionale

Evidenziare colonna A . Fai clic su Formattazione condizionale > Crea nuova regola > Usa questa formula per determinare quali celle formattare > Inserisci il file ff. formula:

=countif($B:$B, $A1)

Fai clic sul pulsante Formato e cambia il colore del carattere in qualcosa che ti piace.

Ripeti lo stesso per la colonna B , tranne usa questa formula e prova un altro colore di carattere.

=countif($A:$A, $B1)

Utilizzando una colonna separata

Nella colonna C , inserisci ff. formula nella prima cella e quindi copiarlo.

=if(countif($B:$B, $A1)<>0, "-", "Not in B")

Nella colonna D , inserisci ff. formula nella prima cella e quindi copiarlo.

=if(countif($A:$A, $B1)<>0, "-", "Not in A")

Entrambi dovrebbero aiutarti a visualizzare quali elementi mancano nell'altra colonna.


Su quale versione (s) di Excel è stato testato?
Peter Mortensen,

1
Dov'è la "formattazione condizionale"? In un menu? In un menu di scelta rapida?
Peter Mortensen,

In una versione precedente di OpenOffice, corrispondente a Excel pre-ribbon (dopo tutto è un clone di Excel), c'è il comando di menu Formato -> Formattazione condizionale .
Peter Mortensen,

1
Si tratta di Excel, ma in OpenOffice / LibreOffice l' utilizzo $B:$Bper fare riferimento all'intera colonna Bnon funziona. Utilizzare invece $B$1:$B$1048576(dove 1048576 è la riga con il numero più alto). Nota $davanti ai numeri (i cosiddetti riferimenti assoluti ): questo fa funzionare come previsto per operazioni come Fill Down (indicato qui come "copia giù") o Fill Up .
Peter Mortensen,

14

Microsoft ha un articolo che descrive in dettaglio come trovare duplicati in due colonne. Può essere modificato abbastanza facilmente per trovare elementi unici in ogni colonna.

Ad esempio, se si desidera che Col C mostri voci univoche per Col A e Col D che mostri voci univoche per Col B:

A   B   C                                          D
1   3   =IF(ISERROR(MATCH(A1,$B$1:$B$5,0)),A1,"")  =IF(ISERROR(MATCH(B1,$A$1:$A$5,0)),B1,"")
2   5   (fill down)                                (fill down)
3   8   ..                                         ..
4   2   ..                                         ..
5   0   ..                                         ..


4

Di 'che vuoi trovare quelli nel col. B senza corrispondenza nel col. A. Inserisci in C2:

=COUNTIF($A$2:$A$26;B2)

Questo ti darà 1 (o più) se c'è una corrispondenza, 0 altrimenti.

Puoi anche ordinare entrambe le colonne singolarmente, quindi selezionare entrambe, Vai a Speciale, selezionare Differenze di riga. Ma questo smetterà di funzionare dopo il primo nuovo elemento e dovrai inserire una cella per ricominciare.


4

Se capisco bene la tua domanda:

=if(Ax = Bx; True_directive ; False_directive)

Sostituisci le direttive True / false con una funzione o con una stringa come "Equal" o "different".


@pasta questo non funzionerà se le due colonne non sono ordinate allo stesso modo, penso che la domanda non sia al riguardo.
SIslam,

3

Dipende dal formato delle celle e dai requisiti funzionali. Con uno "0" iniziale potrebbero essere formattati come testo.

Quindi è possibile utilizzare la funzione IF per confrontare le celle in Excel:

=IF ( logical_test, value_if_true, value_if_false )

Esempio:

=IF ( A1<>A2, "not equal", "equal" )

Se sono formattati come numeri, è possibile sottrarre la prima colonna dall'altra per ottenere la differenza:

=A1-A2

2

Questa formula confronta direttamente due celle. Se sono uguali, verrà stampato True, se esiste una differenza, verrà stampato False. Questa formula non stampa quali sono le differenze.

=IF(A1=B1,"True","False")

1

Sto usando Excel 2010 e evidenzio solo le due colonne che hanno i due set di valori che sto confrontando, quindi fare clic sul menu a discesa Formattazione condizionale nella home page di Excel, scegliere le regole Evidenzia celle e quindi differenze. Quindi chiede di evidenziare differenze o somiglianze e chiede quale evidenziazione di colore si desidera utilizzare ...


0

Il confronto può essere effettuato con il codice VBA di Excel. Il processo di confronto può essere effettuato con la Worksheet.Countiffunzione VBA di Excel .

In questo modello sono state confrontate due colonne su fogli di lavoro diversi. Ha trovato risultati diversi quando un'intera riga è stata copiata nel secondo foglio di lavoro.

Codice:

Dim stk, msb As Worksheet
Set stk = Sheets("Page1")
Set msb = Sheets("Page2")

Application.ScreenUpdating = False
sat = (msb.Range("A" & Rows.Count).End(xlUp).Row) + 1
For i = 2 To stk.Range("A" & Rows.Count).End(xlUp).Row
    If WorksheetFunction.CountIf(msb.Range("A2:A" & msb.Range("A" & Rows.Count).End(xlUp).Row), stk.Cells(i, "A")) = 0 Then
        msb.Range("a" & sat).EntireRow.Value = stk.Range("a" & i).EntireRow.Value
        msb.Range("a" & sat).Interior.ColorIndex = 22
        sat = sat + 1
    End If
Next
...

Il video del tutorial: https://www.youtube.com/watch?v=Vt4_hEPsKt8

Il file di esempio può essere scaricato qui


1
Se hai intenzione di collegarti al tuo blog e al tuo canale YouTube, devi rivelare la tua affiliazione. Altrimenti potresti essere accusato di spamming.
DavidPostill

0

Questo sta usando un altro strumento, ma ho appena trovato questo molto facile da fare. Utilizzando Notepad ++:

In Excel assicurati che le tue 2 colonne siano ordinate nello stesso ordine, quindi copia e incolla le colonne in 2 nuovi file di testo ed esegui un confronto (dal menu dei plug-in).


0

La combinazione di funzioni NOT MATCH funziona bene. Anche questo funziona:

= IF ( ISERROR ( VLOOKUP (<< elemento in un elenco più grande >>, << elenco smaler >>, 1 , FALSE )), << elemento in un elenco più grande >>, "")

RICORDA: l'elenco più piccolo DEVE essere ORDINATO ASCENDENTE - un requisito di vlookup

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.