Vollständige Version anzeigen : Excel: 2 Tabellen auf Übereinstimmungen vergleichen
Kann mir jemand erklären, wie ich in Excel zwei Spalten von zwei verschiedenen Tabellen auf gleiche Einträge überprüfen kann?
Wie es dann ausgegeben wird, ist relativ egal, ob in eine weitere Tabelle, oder Hilfsspalte mit Angabe von WAHR/FALSCH, 1/0.
Ich hab schon im Internet geguckt, aber da finde ich nur Macros (weiss nicht, wie ich so was einbinde), oder einen direkten Vergleich von nur 2 bestimmten Feldern.
Schonmal danke.
Stehen die (gleichen) Einträge immer in den gleichen Zeilen? Oder geht es darum gleiche Zellinhalte zu finden, egal wo sie in der Spalte auftauchen?
Die Inhalte tauchen irgendwo in den Spalten auf, ich kann leider nicht einfach korrespondierende Zeilen vergleichen.
Dann geht das in der Tat nur per Makro.
Kannst du mir mal das Szenario genau erklären (Spalten, Arbeitsblatt, Beispielinhalt)?
Also, ich hab eine Tabelle mit Kundendaten, und eine "Blacklist" mit eMail- Addressen. Ich will nur überprüfen, ob die eMail- Addressen in der Blacklist im eMailfeld der anderen Tabelle vorkommen.
Ich hätte ja kein Problem mit nem Makro, hab nur keine Ahnung, wie ich das Makro dann in Excel überhaupt einbaue.:confused:
Ok, das folgende Macro färbt in Tabelle 1 einer Arbeitsmappe alle Zellen rot, die eine Entsprechung in einer weiteren, geöffneten Arbeitsmappe in Spalte 1 haben:
Sub finde_dubletten()
ende_mail = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
ende_black = Workbooks(2).Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ende_mail
wert = Cells(i, 1).Value
For a = 1 To ende_black
wert_black = Workbooks(2).Sheets(1).Cells(a, 1).Value
If wert = wert_black Then Cells(i, 1).Interior.ColorIndex = 3
Next a
Next i
End Sub
Alternativ, sollten sich die beiden Tabellen in einer Arbeitsmappe befinden:
Sub finde_dubletten()
ende_mail = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
ende_black = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ende_mail
wert = Cells(i, 1).Value
For a = 1 To ende_black
wert_black = Sheets(2).Cells(a, 1).Value
If wert = wert_black Then Cells(i, 1).Interior.ColorIndex = 3
Next a
Next i
End Sub
Nimm das Szenario das bei dir anwendbar ist und kopiere den Code.
In Excel gehst du auf 'Extras' -> Makro -> Visual Basic Editor.
Dort machst du einen Doppelklick auf 'Blatt1' (im linken Teil des Fensters) und fügst den Code dann einfach rechts ein.
Nun wechselst du wieder in Excel und wählst 'Extras' -> Makro -> Makros... und wählst dort das Makro aus.
Wenn du noch anpassen musst:
Sheets(1) bedeutet: Das erste Arbeitsblatt in der Mappe, analog ist natürlich Sheets(2) das zweite.
Ähnlich verhält es sich mit 'Cells'. Cells(1,1) bezeichnet die Zelle A1, Cells(2,1) ist A2, Cells(1,2) ist B1.
Wenn sich also deine Emailadressen in Spalte D befinden musst du den Code bei Cells so ändern, dass es Cells(i,4) lautet.
vBulletin v3.7.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.