Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Übereinstimmungen 2er Tabellen finden

Übereinstimmungen 2er Tabellen finden
09.01.2018 13:27:42
Burak
Moin Moin,
also es geht um folgendes:
Ich habe mehrere Sheets aber erstmal geht es um Sheet 2 ("R1") und Sheet 8 ("LogImport").
In beiden sind Tabellen über mehrere Spalten und Zeilen.
in Sheet 2 sind es 12 Spalten und in Sheet 8 14 Spalten.
Nennen wir die Tab2 und Tab8.
Was das Makro machen soll ist folgendes:
1. Wert aus Spalte B Tab8
sucht den identischen Wert in Spalte B Tab2
Zugehöriger Wert aus Spalte C Tab8
sucht den identischen Wert in Spalte G Tab2
Zugehöriger Wert aus Spalte D Tab8
sucht den identischen Wert in Spalte J Tab2
Zugehöriger Wert aus Spalte F Tab8
sucht den identischen Wert in Spalte K Tab2
Das heißt es müssen 4 Übereinstimmungen in zwei Tabellen jeweils einer Zeile sein.
Dann soll er in Sheet 10 die Informationen aller 26 Spalten (12 aus Tab2 und 14 auf Tab8) in einer Zeile einfügen.
Die nächste Übereinstimmung kommt dann natürlich eine Zeile darunter.
Dies soll solange passieren bis er in Tab8 alle nicht leeren Zeilen abgearbeitet hat.
Mir fehlt eig nur der Ansatz, also dass er einen Wert nicht nur in einer Zelle des anderen Sheets vergleicht sondern in der ganzen Spalte.
Also Richtung SVerweis geht das glaub ich. bzw mehrfacher SVerweis
Freundliche Grüße und Danke im Voraus :D

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Übereinstimmungen 2er Tabellen finden
09.01.2018 13:36:26
Werner
Hallo Burak,
mach doch mal eine kleine Beispielmappe mit ein paar Datensätzen und zumindest einem oder zwei gewünschten Einträgen deines Ergenisses und lade die Mappe hoch.
Gruß Werner
AW: Übereinstimmungen 2er Tabellen finden
09.01.2018 14:31:29
Burak
https://www.herber.de/bbs/user/118809.xlsx
nochmal markiert und kleine Erklärung auf dem letzten Sheet dazu. (sonst gleiche Datei wie die zuvor)
AW: Übereinstimmungen 2er Tabellen finden
09.01.2018 15:25:53
Werner
Hallo,
können identische Datensätze in beiden Tabellenblättern auch mehrfach vorkommen?
Von wievielen Datensätzen insgesamt (je Tabellenblatt) ist denn auszugehen?
Gruß Werner
Anzeige
AW: Übereinstimmungen 2er Tabellen finden
09.01.2018 15:31:55
Burak
nein können sie nicht, dafür sind es ja 4 Vergleiche. um genau das auszuschließen
sidn an die 2000. aber bezüglich der Länge der Tabelle habe ich die Variable "Zeilenzahl" die es vorher zählt und den Wert speichert. man kann also für die for schleifen als endziel die variable "Zeilenzahl" verwenden.
AW: Übereinstimmungen 2er Tabellen finden
09.01.2018 15:30:26
Burak
Erster Versuch:
Sub test()
For i = 2 To 10
For k = 2 To 1000
If Worksheets(8).Range("B" & i).Value = Worksheets(2).Range("B" & k).Value Then
If Worksheets(8).Range("C" & i).Value = Worksheets(2).Range("G" & k).Value Then
If Worksheets(8).Range("D" & i).Value = Worksheets(2).Range("J" & k).Value Then
If Worksheets(8).Range("F" & i).Value = Worksheets(2).Range("K" & k).Value Then
Worksheets(10).Range("B" & i).Value = "Ja"
Else
Worksheets(10).Range("B" & i).Value = "Nein"
End If
End If
End If
End If
Next k
Next i
End Sub
Wenn alle drei Zeilen (ausm Test beispiel) vorhanden sind, kriege ich drei Jas untereinander, wenn aber eins davon fehlt, kriege ich nur 2 Jas, aber kein nein...
Darauf kam ich auf die Idee vor jedes End If ein Else und die Zeile mit dem "nein" einzufügen.
In dem Fall kriege ich dann 10 neins und mehr nicht :(
Anzeige
Nachfrage
09.01.2018 15:37:52
Werner
Hallo,
folgende Ungereimtheit ist mir noch aufgefallen.
Im Eingangsbeitrag schreibst du:
Dann soll er in Sheet 10 die Informationen aller 26 Spalten (12 aus Tab2 und 14 auf Tab8) in einer Zeile einfügen.
In deiner Beispieldatei sind aber vom Tabellenblatt LogImport nur 9 Spalten im Zielblatt vorhanden.
Gruß Werner
AW: Nachfrage
09.01.2018 15:42:44
Burak
das liegt daran, dass der die Werte aus Spalte A-D und F des Tabellenblatts 8 auch im Tabellenblatt 2 vorkommen, daher hätte man diese Werte/Spalten doppelt.
z.B Spalte A ("Barcode") in Tabellenblatt 8 hat immer denselben Wert wie Spalte A ("Barcode") in Tabellenblatt 2.
Daher müssen die Spalten A-D und F aus Tabellenblatt 8 nicht in Tabellenblatt 10 kopiert werden, dafür aber dann alle Spalten aus Tabellenblatt 2
Anzeige
AW: Nachfrage
09.01.2018 16:07:00
Burak
Also so funktioniert es grundsätzlich, aber noch ein kleines Problem besteht:
Wenn er bei den Ifs den Wert nicht findet bzw keine Übereinstimmung, dann macht er zwar mit dem nächsten weiter lässt aber auf Tabellenblatt 10 eine Lücke.
Sub test()
For i = 2 To 10
For k = 2 To 1000
If Worksheets(8).Range("B" & i).Value = Worksheets(2).Range("B" & k).Value Then
If Worksheets(8).Range("C" & i).Value = Worksheets(2).Range("G" & k).Value Then
If Worksheets(8).Range("D" & i).Value = Worksheets(2).Range("J" & k).Value Then
If Worksheets(8).Range("F" & i).Value = Worksheets(2).Range("K" & k).Value Then
With Worksheets(10)
.Range("A" & i).Value = Worksheets(2).Range("A" & k).Value
.Range("B" & i).Value = Worksheets(2).Range("B" & k).Value
.Range("C" & i).Value = Worksheets(2).Range("C" & k).Value
.Range("D" & i).Value = Worksheets(2).Range("D" & k).Value
.Range("E" & i).Value = Worksheets(2).Range("E" & k).Value
.Range("F" & i).Value = Worksheets(2).Range("F" & k).Value
.Range("G" & i).Value = Worksheets(2).Range("G" & k).Value
.Range("H" & i).Value = Worksheets(2).Range("H" & k).Value
.Range("I" & i).Value = Worksheets(2).Range("I" & k).Value
.Range("J" & i).Value = Worksheets(2).Range("J" & k).Value
.Range("K" & i).Value = Worksheets(2).Range("K" & k).Value
.Range("L" & i).Value = Worksheets(2).Range("L" & k).Value
.Range("M" & i).Value = Worksheets(8).Range("G" & i).Value
.Range("N" & i).Value = Worksheets(8).Range("H" & i).Value
.Range("O" & i).Value = Worksheets(8).Range("I" & i).Value
.Range("P" & i).Value = Worksheets(8).Range("J" & i).Value
.Range("Q" & i).Value = Worksheets(8).Range("K" & i).Value
.Range("R" & i).Value = Worksheets(8).Range("L" & i).Value
.Range("S" & i).Value = Worksheets(8).Range("M" & i).Value
.Range("T" & i).Value = Worksheets(8).Range("N" & i).Value
.Range("A1:L1").Value = Worksheets(2).Range("A1:L1").Value
.Range("M1:T1").Value = Worksheets(8).Range("G1:N1").Value
End With
End If
End If
End If
End If
Next k
Next i
End Sub
Wahrscheinlich muss ich in der Schleife mit einem Zeilenzähler in Tabellenblatt 10 arbeiten und den verwenden, oder? kann mir jmd einen Hinweis geben?
Und evtl die Ifs in eine If Anweisung iwie, so sieht das doof aus :(
Danke :*
Ps: mache feierabend, gucke also erst morgen früh wieder hier rein :)
Wünsche euch noch einen schönen abend
Anzeige
AW: Nachfrage
09.01.2018 18:21:56
Werner
Hallo,
dürfen die beiden betroffenen Tabellen sortier werden?
Gruß Werner
AW: Nachfrage
10.01.2018 09:32:26
Werner
Hallo Burak,
noch was ist mir aufgefallen:
Zumindest in deinen beiden Testdateien sind bein den Werten in der Spalte "Analysetyp" jeweils ein Leerzeichen am Ende des Wertes, bei den gleichen Daten im Blatt LogImport aber nicht.
Das bedeutet, dass deine Prüfung, ob die beiden Werte gleich sind in diesen Fällen falsch ergibt.
Gruß Werner
AW: Nachfrage
10.01.2018 11:18:07
Burak
das liegt an der beispiel datei dann, im original sind da keine leerzeichen
und ja sortiert werden können sie, müssen aber nicht
Datei zurück
10.01.2018 13:42:33
Werner
Hallo Burak,
teste mal. Ich habe komplett auf Schleifen verzichtet, dürfte von der Perfomance her wohl besser sein.
https://www.herber.de/bbs/user/118859.xlsm
Gruß Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige