07.11.2019, 18:09
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
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