Clever-Excel-Forum

Normale Version: Import CSV mit unterschiedlichen Ergebnissen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich hab da ein Problem bei Import von CSV-Files, das ich nicht verstehe:




Zum Hintergrund:

Eine Software exportiert Daten nach dem immer wieder gleichen Schema als CSV.

Der Aufbau des CSV ist immer gleich, nur die Anzahl der Datensätze ist unterschiedlich.

Dieses CSV soll in EXCEL und einem weiteren Priogramm weiterverarbeitet werden.

In dem CSV ist auch ein Datenfeld mit führenden Nullen ("Barcode").
Das CSV enthält eine immer gleiche Überschriften-Zeile.



Das Problem:

Importiert (Daten abrufen -> aus Datei -> aus CSV) man unterschiedliche dieser CSV in Excel wird es mal das Komma (,) als Trennzeichen automatisch erkannt, mal das Semicolon (;).

Gut, das kann man in Excel leicht umstellen, aber meine Frage 1: Warum wird hier unterschiedlich interpretiert?



Und das Datenfeld mit den führenden Nullen wird mal als Text und mal als Zahl interpretiert. Letzteres führt dazu, dass die führenden Nullen des "Barcode"-Feldes verloren gehen.
Stellt man bei Import die Datentypenerkennung auf "nicht ermitteln" bleiben die führenden Nuller erhalten.
Das ist unser eigentlichen "Sorgenkind".
=> Frage 2: Worin begründet sich der Unterschied?



Folgendes können wir noch beitragen:

Wir haben festgestellt:

Hat ein CSV wenige Datensätze (in unserer Testdatei   15+Überschrift) geht Excel von Trennzeichen = Komma aus, versteht den "Barcode" als Text und behält die Führenden Nullen
Hat ein CSV viele Datensätze (in unserer 2. Testdatei 500+Überschrift) geht Excel von Trennzeichen = Semicolon aus, versteht den "Barcode" als Zahl und eliminiert die Führenden Nullen

Das CSV können wir nicht beeinflußen und auch nicht das Datenfeld mit den führenden Nullen.

Aber folgendes ist spannend:


Wir haben das große CSV genommen und 450 Datensätze rausgelöscht => Die jetzt verkleinerte CSV wird wie die kleine CSV interpretiert, also
     in Originalgröße               -> Trennzeichen = Semicolon , "Barcode" als Zahl und eliminiert die Führenden Nullen
     mit weniger Datensätzen -> Trennzeichen = Komma ,"Barcode" als Text und behält die Führenden Nullen


Das Verständnis von EXECL bei Import scheint also irgendwie von der Anzahl der Datensätze in dem CSV abzuhängen, wobei es keinen Unterschied macht, ob die Interpretation bei großen Dateien nur auf den ersten 200 oder auf der ganzen Datei beruht. Zwischen den beiden Einstellungen ist das Ergebnis gleich.




Nachdem wir diverse Foren verzweifelt durchforstet und nichts gefunden haben hoffe ich nun auf Eueren guten Rat:

An was kann das liegen?
Und was kann ich tun, damit das Trennzeichen immer als Komma und der Barcode immer als Text verstanden wird?



Das Hauptproblem für uns ist, dass andere Programme, die die Daten ebenfalls weiterverwenden, nach der gleichen Logik das "Barcode"-Feld mal als Text und mal als Zahl verstehen und anscheinend die gleiche Logik dafür verwenden wie Excel.

Deshalb hoffe ich die Ursache in Excel verstehen zu können, um sie dann auf die anderen Programme übertragen zu können.

In EXCEL kann ich das beim manuellen Import anpassen, aber bei dem anderen programm nicht.


Ich hoffe, ich hab das verständlich wiedergegeben.

Leider kann ich beiden Dateien aus Datenschutzgründen nicht anhängen, sie enthalten vertrauliche Daten. Ich hoffe aber, Ihr habt auch so einen Ansatz für mich.



Weitere Eckdaten:

CSV = Unicode (UTF-8) Code

Win 10

Office 365 (lokal)



Danke und liebe Grüße
Besch
Verwende ein Querytable.
Moin

Erstens kann man im Query den Datentyp anpassen und zweitens ermittelt PQ den Datentyp basierend auf den ersten 100(?) Zeilen.
Ohne Beispieldateien ist es schwierig das geschilderte Problem nachzuvollziehen.

1.
Ich für mich würde ein Importmakro programmieren, dass die CSV Datei dann immer mit den gleichen Parametern importiert.
(Aus diesen Daten könnte man wieder eine Exportdatei (z.B. CSV) erstellen lassen und dieses dann für das andere Programm nutzen, sofern das überhaupt sinnvoll ist)

2.
Das in Excel integrierte Power-Query-Tool könnte wahrscheinlich hier auch sehr hilfreich sein. Auf YouTube gibt es gute Videos zu diesem Thema.