Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

CSV-Dateien vergleichen und gemeinsame Zeilen finden

InvisibleBot / 5 Antworten / Flachansicht Nickles

Hallo,

ich habe 2 CSV-Dateien (Datei A mit 1300 Zeilen, Datei B mit 6700 Zeilen) und muss herausfinden, welche Zeilen in beiden Dateien enthalten sind.

Also in der Form, dass für jede einzelne Zeile aus Datei A verglichen wird, ob diese Zeile auch irgendwo in Datei B steht. Wenn ja, soll die Zeile in eine dritte Datei ausgegeben werden.

Hab eine Weile gegoogelt, aber fast nur Lösungen gefunden die Unterschiede finden. Ich dachte dass der Batchbefehl findstr das eigentlich können sollte, aber der vergleicht wohl nicht jede Zeile einzeln mit der ganzen Datei B sondern die einzelnen Zeilen direkt miteinander. Je nachdem wie ich findstr konfiguriere bekomme ich daher als Ausgabe entweder eine leere Datei oder den kompletten Inhalt von Datei A.

Winmerge zeigt mir die gemeinsamen Zeilen schön an, allerdings habe ich keine Möglichkeit gefunden die dann herauszufiltern und auszugeben.

Kann mir jemand auf die Sprünge helfen?

- Beat the machine that works in your head! -
bei Antwort benachrichtigen
gelöscht_323936 InvisibleBot „CSV-Dateien vergleichen und gemeinsame Zeilen finden“
Optionen

Wie sind die Dateien geöffnet?

Wenn jede Datei zeilenweise in einer Tabellenkalkulation geöffnet wird, kann man den Inhalt einer Zeile mit der anderen Datei vergleichen.
So was mache ich am ehesten mit der Funktion ZÄHLENWENN.  Das ist am schnellsten.

Nicht vergessen, in der Formal den Suchbereich in der anderen Tabelle mit $ zu arretieren - für das einfache Vervielfältigen der Formel.

Hier sind z.B. die Dateien in Tabelle1 und Tabelle2 in der gleichen Datei jeweils in Spalte A  geöffnet.

In Tabelle1 Spalte B:
                                   =ZÄHLENWENN($Tabelle2.A$1:A$letzteZeile;A1)
Die Formel einfach (mit Doppelklick) über alle vorhandenen Zeilen in Tabelle1 vervielfältigen.

Überall, wo eine Zahl größer Null steht, ist die Zeile auch in der anderen Tabelle.
Manchmal ist es nötig, Leerzeichen zu eliminieren, auch nur am Ende oder Anfang einer Zeile.
Auch dafür gibt es Funktionen (Glätten oder TRIM z.B.).

Vielleicht hilft es ja weiter.

Das geht in EXCEL genau wie in Calc.
Ist etwas schneller als SVERWEIS

bei Antwort benachrichtigen