Microsoft Excel

Herbers Excel/VBA-Archiv

CSV zusammenführen


Betrifft: CSV zusammenführen von: Anne-Marie
Geschrieben am: 15.08.2018 10:04:05

Hallo Leute,

ich habe zwar bereits eine Teillösung bekommen, aber ich hab es falsch hier formuliert. Danke aber an dieser Stelle nochmal an Werner und SF.

Problem:

Ich kriege eine Liste mit 7000 Zeilen jeden Montag, die sind wie in der Bsp. Datei (Natürlich anonymisiert und verkürzt). Das ist die Tabelle mit dem Namen ("So ist es Momentan"). Nun will ich wie in der anderen Tabelle es so haben, dass die Komplette Liste nur nach 1010 und 4010 sortiert wird und dann nur die Spalten B,Q,Z,AA angezeigt werden. Kann mir da jemand helfen? Vielleicht mit einem Makro auch, sodass immer wenn die Liste eingelesen wird, es dann automatisch alles aktuallisiert?

https://www.herber.de/bbs/user/123341.xlsx

  

Betrifft: AW: CSV zusammenführen von: Zwenn
Geschrieben am: 16.08.2018 17:37:43

Hallo Anne-Marie,

ich habe Dein Thema SVERWEIS Problem gelesen, nachdem Du in diesem Posting darauf Bezug genommen hast. zunächst Mal würde ich gerne wissen, ob Du noch eine Lösung suchst und zu wann Du sie brauchst. Ich selbst könnte mich vor kommendem Dienstag nicht darum kümmern.

Folgende Punkte gibt es aber auch für Andere Helfer noch zu klären denke ich:

  • Du gingst offenbar selbst von einem sverweis Problem aus, überführst es in diesem Thread aber in ein CSV Import Problem. Sollte es sich um EINE Liste handeln, aus der Du zu bestimmten Schlüsseln (Konten in Spalte B) nur die zugehörigen Informationen aus der jeweils gleichen Zeile aus den Spalten Q, Z und AA benötigen, wird sverweis meines Erachtens nach gar nicht benötigt, weil am Ende nur die Daten in der Zieltabelle landen, die Du auch haben willst.
    Sind es Daten aus ZWEI CSV Datein, die zusammengeführt werden müssen (wovon ich aber nach Deinen Beispieldateien nicht ausgehe), dann würde ein eindeutiger Wert für jeden zusammenzuführenden Datensatz benötigt, der für zusammengehörige Informationen in beiden Dateien gleich ist (Identifikator). Sonst kann man keine eindeutige Zuordnung vornehmen.
    Was ist der Fall?

  • In Deiner im sverweis Thread hochgeladenen Datei kommen die Konten 1010 und 4010 gar nicht vor. Muss die Angabe der Konten also flexiebel sein? Mach dazu bitte eine eindeutige Aussage.

  • Haben die Listen eigentlich Kopfzeilen? Ich frage das, weil in Deiner Beispieldatei in der Tabelle So ist es Momentan keine drin steht, Du im anderen Thread aber Bezug darauf nimmst.

  • Falls keine Kopfzeile in den CSV Dateien ist, ist dann für die Zieltabelle in Excel eine vorgesehen? In der Tabelle So soll es sein ist keine enthalten, im Beispiel Screenshot aus dem anderen Thread aber sehr wohl. Bitte zu den Kopfzeilen eine Eindeutige Aussage treffen.

  • Was genau ist mit sodass immer wenn die Liste eingelesen wird, es dann automatisch alles aktuallisiert gemeint? Soll die bisher bestehende Tabelle durch die neuen Werte ersetzt werden? Sollen nur Datensätze ersetzt werden, die sich geändert haben? Falls ja, wie sollen die identifiziert werden? (Gleiches Problem, wie weiter oben mit dem Zusammenführen zweier Listen beschrieben). Soll für jede eingelesene CSV Datei eine neue Tabelle generiert werden? Oder ganz anders?


  • Da es sich offensichtlich um einen CSV Import handelt, solltest Du hier eine CSV Datei hochladen, die einen Teil der Daten in annonymisierter Form enthält. Wichtig ist, dass Du am Aufbau nix änderst! Das Format der CSV Datei ist wichtig und der Excel Datei mit Deinen Beispieldaten nicht mehr zu entnehmen.

    Meine Lösung würde über ein Array arbeiten. Dazu würde als erstes festgestellt werden, wieviele Zeilen die zu verarbeitende CSV Datei hat. Dann würde das Array entsprechend groß dimensioniert werden. Anschließend wird die CSV Datei in das Array eingelesen. Man kann auch während des Einlesens der Datei bereits nur die relevanten Zeilen in das Array einlesen.

    Anhand der Konten wird dann in einer Schleife entschieden, welche Zeilen aus dem Array in eine Tabelle geschrieben werden sollen. Während der Datenübertragung vom Array in die Tabelle werden wiederum nur die Werte aus den relevanten Spalten übernommen.

    Das wäre mein Ansatz. Aber wie gesagt, erst wenn die oben angeführten Fragen geklärt sind und meinerseits nicht vor kommendem Dienstag.

    Viele Grüße,

    Zwenn


    Beiträge aus dem Excel-Forum zum Thema "CSV zusammenführen"