|
#1
|
||||
|
||||
Software: - 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.
__________________
|
#2
|
||||
|
||||
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?
__________________
Zitat:
|
#3
|
||||
|
||||
Die Inhalte tauchen irgendwo in den Spalten auf, ich kann leider nicht einfach korrespondierende Zeilen vergleichen.
__________________
|
#4
|
||||
|
||||
Dann geht das in der Tat nur per Makro.
Kannst du mir mal das Szenario genau erklären (Spalten, Arbeitsblatt, Beispielinhalt)?
__________________
Zitat:
|
#5
|
||||
|
||||
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.
__________________
|
#6
|
||||
|
||||
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:
Code:
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 Code:
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 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.
__________________
Zitat:
|