CnC Foren

CnC Foren (http://www.cncforen.de/index.php)
-   Tech-Support / Tech-Talk (http://www.cncforen.de/forumdisplay.php?f=26)
-   -   Excel: 2 Tabellen auf Übereinstimmungen vergleichen (http://www.cncforen.de/showthread.php?t=74604)

Nemo 14-01-2008 11:18

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.

Sven 14-01-2008 11:41

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?

Nemo 14-01-2008 12:21

Die Inhalte tauchen irgendwo in den Spalten auf, ich kann leider nicht einfach korrespondierende Zeilen vergleichen.

Sven 14-01-2008 12:24

Dann geht das in der Tat nur per Makro.
Kannst du mir mal das Szenario genau erklären (Spalten, Arbeitsblatt, Beispielinhalt)?

Nemo 14-01-2008 12:36

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:

Sven 14-01-2008 12:57

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

Alternativ, sollten sich die beiden Tabellen in einer Arbeitsmappe befinden:
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

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.

Nemo 14-01-2008 13:20

Klasse, danke.:)


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:57 Uhr.

Powered by vBulletin Version 3.7.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.