Ich habe Daten in der Spalte A
und B
. Die Daten der Spalte B
sind meistens Duplikate der Daten von A
, jedoch nicht immer. Zum Beispiel:
A
Budapest
Prague
Paris
Bukarest
Moscow
Rome
New York
B
Budapest
Prague
Los Angeles
Bukarest
Ich muss die Spalte A
durchsuchen, wenn die Werte in B
dort vorhanden sind. Wenn eine Zeile übereinstimmt, muss ich die Hintergrundfarbe der Zeile in A
in rot oder etwas ändern.
Welche Funktion muss ich verwenden und wie?
Sorry, ich bin ein Neuling in Excel.
Hier ist die Formel
erstellen Sie eine neue Regel für die bedingte Formatierung anhand einer Formel. Verwenden Sie die folgende Formel und wenden Sie sie auf $ A an: $ A
=NOT(ISERROR(MATCH(A1,$B$1:$B$1000,0)))
hier ist das Beispielblatt zum Herunterladen, falls Sie Probleme haben
UPDATE
Hier ist der Vorschlag von @pnuts, der ebenfalls perfekt funktioniert:
=MATCH(A1,B:B,0)>0
Keine Formeln erforderlich. Dies funktioniert für beliebig viele Spalten, jedoch werden nur Spalten in demselben Arbeitsblatt verglichen:
Duplikate werden jetzt rot hervorgehoben
Eine andere einfachere Lösung besteht darin, diese Formel in der bedingten Formatierung zu verwenden (gilt für Spalte A):
=COUNTIF(B:B,A1)
Grüße!
Alles, was Sie dafür tun müssen, ist eine einfache Schleife.
Dies ist nicht für Tests geeignet, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird. Wenn dies nicht genau das ist, wonach Sie suchen, kommentieren Sie, und ich kann es überprüfen.
Wenn Sie planen, VBA zu lernen. Das ist ein toller Start.
GEPRÜFT:
Sub MatchAndColor()
Dim lastRow As Long
Dim sheetName As String
sheetName = "Sheet1" 'Insert your sheet name here
lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row
For lRow = 2 To lastRow 'Loop through all rows
If Sheets(sheetName).Cells(lRow, "A") = Sheets(sheetName).Cells(lRow, "B") Then
Sheets(sheetName).Cells(lRow, "A").Interior.ColorIndex = 3 'Set Color to RED
End If
Next lRow
End Sub
Ich habe mir das angesehen und fand den Ansatz von peege mit einer for-Schleife toll! (weil ich gerade VBA lerne)
Wenn Sie jedoch versuchen, einen beliebigen Wert einer anderen Spalte abzugleichen, verwenden Sie geschachtelte Schleifen wie die folgenden.
Sub MatchAndColor()
Dim lastRow As Long
Dim sheetName As String
sheetName = "Sheet1" 'Insert your sheet name here
lastRow = Sheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row
For lRowA = 1 To lastRow 'Loop through all rows
For lRowB = 1 To lastRow
If Sheets(sheetName).Cells(lRowA, "A") = Sheets(sheetName).Cells(lRowB, "B") Then
Sheets(sheetName).Cells(lRowA, "A").Interior.ColorIndex = 3 'Set Color to RED
End If
Next lRowB
Next lRowA
End Sub
Ich kann die oberste Antwort nicht kommentieren, aber Excel lässt Sie dies tatsächlich tun, ohne die hässliche bedingte Logik hinzuzufügen.
Die bedingte Formatierung ist wird automatisch angewendet für alle Eingaben, die kein Fehler sind, sodass Sie den gleichen Effekt erzielen wie:
=NOT(ISERROR(MATCH(A1,$B$1:$B$1000,0)))
Mit diesem:
= MATCH(A1,$B$1:$B$1000,0)))
Wenn das Obige auf Ihre Daten angewendet wird, wird A1 formatiert, wenn es mit einer Zelle in $ B $ 1: $ B $ 1000 übereinstimmt, da jede Nichtübereinstimmung einen Fehler zurückgibt.