2012-04-04 18 views
38

Ho un file excel con 10.000 righe nella colonna A alcuni valori sono gli stessi.Excel confronta due colonne ed evidenzia quando viene trovato

Esempio:

A1 - P7767 

A2 - P3443 

A3 - P7767 

A4 - P8746 

A5 - P9435 

ecc ...

Ho poi un altro colonna con 100 righe che hanno alcuni dei valori trovati nella colonna A,

B1 - P7767 

B2 - P8746 

ecc ..

Ho bisogno di evidenziare tutte le celle nella colonna A dove il valore si trova in uno qualsiasi dei valori s nella colonna B

Quindi, in pratica controlli colonna B per vedere se è possibile trovare lo stesso valore di qualsiasi punto della colonna A, se vero highlight della cella di lasciare le celle bianco quando il valore non si trova nella colonna B

I spero di averlo spiegato bene, ho fatto qualche ricerca e credo di aver bisogno di usare la formattazione condizionale per ottenere questo risultato, ma sono davvero bloccato sulla formula da usare e non riesco a trovare un esempio online (forse non sto cercando il termine corretto, come io non sono sicuro di ciò che questo si chiama esattamente)

risposta

69

Ci può essere una soluzione più semplice, ma è possibile utilizzare VLOOKUP per verificare se un valore compare in una lista (e CERCA.VERT è una formula potente per fare i conti con comunque).

Così per A1, è possibile impostare un formato condizionale utilizzando la seguente formula:

=NOT(ISNA(VLOOKUP(A1,$B:$B,1,FALSE))) 

Copia e Incolla speciale> Formati per copiare tale formato condizionale per le altre celle nella colonna A.

Cosa la formula di cui sopra sta facendo:

  • Cerca.VERT sta cercando il valore di cella A1 (primo parametro) contro l'intera colonna B ($ B: $ B), nella prima colonna (che è il terzo parametro, rosso qui, ma tipicamente VLOOKUP cerca una tabella piuttosto che una colonna). L'ultimo parametro, FALSE, specifica che la corrispondenza deve essere esatta anziché solo la corrispondenza più vicina.
  • VLOOKUP tornerà #ISNA se non viene trovata alcuna corrispondenza, in modo che il NOT (ISNA (...)) restituisce vero per tutte le cellule che hanno una corrispondenza nella colonna B.
+1

Ciao David, Questo ha funzionato perfettamente, grazie! Volevo solo dire un ringraziamento in più per spiegare cosa sta facendo la formula, mi sarà di grande aiuto in futuro. Cordiali saluti, Kyle – Izion

+2

Piacere mio. In tutta onestà, penso che anche l'approccio di chris neilsen (lo hanno svalutato) funzionerà, ed è probabilmente più elegante. – David

1

A1 -> formattazione condizionale -> valore della cella è B1 -> formato: quello che vuoi

speranza che aiuta

28

Una formula semplice da usare è

=COUNTIF($B:$B,A1) 

La formula specificata è per la cella A1.Semplicemente copia e incolla speciale - formato a tutta la colonna A

2

Il modo più semplice per farlo, almeno per me, è:

format- condizionale> Aggiungi nuova su regole> Imposta la propria formula:

=ISNA(MATCH(A2;$B:$B;0)) 

Dove A2 è il primo elemento nella colonna A da confrontare e B è la colonna in cui verrà cercato l'elemento di A.

Una volta impostata la formula e selezionato il formato, applicare questa regola a tutti gli elementi nella colonna.

Spero che questo aiuti

0

Non wana fare soo molto guyss lavoro .. basta premere Ctr e selezionare Colum uno e premere Ctr e selezionare colum due. Quindi fare clic su formattazione condizionale -> Evidenzia regole cella -> Equel a.

e questo è tutto. hai fatto :)

+0

Questa non è una risposta alla domanda che è stata posta. –

1

Stavo cercando di confrontare le colonne A-B e di evidenziare il testo uguale, ma usando le fomrule obverse un testo non corrispondeva affatto. Quindi ho usato i codici modulo (VBA macro to compare two columns and color highlight cell differences) e ho modificato alcune cose per adattarlo alla mia applicazione e trovare qualsiasi colonna desiderata (semplicemente facendo clic su di essa). Nel mio caso, utilizzo un numero ampio e diverso di righe su ogni colonna. Spero che questo aiuti:

Sub ABTextCompare()

Dim Report As Worksheet 
Dim i, j, colNum, vMatch As Integer 
Dim lastRowA, lastRowB, lastRow, lastColumn As Integer 
Dim ColumnUsage As String 
Dim colA, colB, colC As String 
Dim A, B, C As Variant 

Set Report = Excel.ActiveSheet 
vMatch = 1 

'Select A and B Columns to compare 
On Error Resume Next 
Set A = Application.InputBox(Prompt:="Select column to compare", Title:="Column A", Type:=8) 
    If A Is Nothing Then Exit Sub 
colA = Split(A(1).Address(1, 0), "$")(0) 
Set B = Application.InputBox(Prompt:="Select column being searched", Title:="Column B", Type:=8) 
    If A Is Nothing Then Exit Sub 
    colB = Split(B(1).Address(1, 0), "$")(0) 
'Select Column to show results 
Set C = Application.InputBox("Select column to show results", "Results", Type:=8) 
    If C Is Nothing Then Exit Sub 
    colC = Split(C(1).Address(1, 0), "$")(0) 

'Get Last Row 
lastRowA = Report.Cells.Find("", Range(colA & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column A 
lastRowB = Report.Cells.Find("", Range(colB & 1), xlFormulas, xlByRows, xlPrevious).Row - 1 ' Last row in column B 

Application.ScreenUpdating = False 
'*************************************************** 
For i = 2 To lastRowA 
     For j = 2 To lastRowB 
      If Report.Cells(i, A.Column).Value <> "" Then 
       If InStr(1, Report.Cells(j, B.Column).Value, Report.Cells(i, A.Column).Value, vbTextCompare) > 0 Then 
        vMatch = vMatch + 1 
        Report.Cells(i, A.Column).Interior.ColorIndex = 35 'Light green background 
        Range(colC & 1).Value = "Items Found" 
        Report.Cells(i, A.Column).Copy Destination:=Range(colC & vMatch) 
        Exit For 
       Else 
        'Do Nothing 
       End If 
      End If 
     Next j 
    Next i 
If vMatch = 1 Then 
    MsgBox Prompt:="No Itmes Found", Buttons:=vbInformation 
End If 
'*************************************************** 
Application.ScreenUpdating = True 

End Sub

1

Si supponga di voler confrontare una colonna A e la colonna H in uno stesso foglio di calcolo.

avete bisogno di andare un'altra colonna accanto a queste 2 colonne ed incolla questa formula: = (! Foglio1 A: A = Foglio1 H: H) questo verrà visualizzato FALSE o TRUE nella colonna. Quindi puoi usare questa nuova colonna per colorare i valori non corrispondenti usando la funzione di formattazione del colore condizionale.

2

NOTA: è possibile rimuovere elementi duplicati (ad esempio voci duplicate nella stessa colonna) prima di eseguire questi passaggi per evitare falsi positivi.

  1. Selezionare entrambe le colonne
  2. click Formattazione condizionale
  3. click evidenziare le celle Regole
  4. click valori duplicati (i valori di default dovrebbero essere OK)
  5. duplicati sono ora evidenziate in rosso:

enter image description here

+0

Questo è molto veloce e semplice (+1), ma c'è un avvertimento: se ci sono dati duplicati nella colonna * stessa *, li evidenzierà anche se quei valori non sono presenti nell'altra colonna. Il che significa che potrebbero esserci dei falsi positivi. Se, d'altra parte, non ci sono dati duplicati all'interno della stessa colonna, questa sembra la scelta migliore. E naturalmente è possibile rimuovere i duplicati all'interno della stessa colonna (selezionare la colonna, Dati -> Rimuovi duplicati) prima di utilizzarla per evidenziare le celle duplicate. –