Warum Excel Ihre CSV zerstört
Postleitzahlen verlieren ihre führende Null, Artikelnummern werden zu Datumswerten, und lange Kennungen werden unbemerkt gerundet. Das passiert beim Öffnen, nicht beim Speichern – deshalb finden so viele nie heraus, was schiefgelaufen ist.
Zuletzt geprüft am
Der Schaden entsteht beim Öffnen
Genau das macht das Problem so schwer zu durchschauen. Eine CSV ist eine Textdatei: Jeder Wert darin besteht aus Zeichen, und nichts in der Datei sagt, was sie bedeuten. Beim Öffnen rät Excel für jede Spalte einen Typ, wandelt die Werte entsprechend um und arbeitet ab diesem Moment mit der umgewandelten Fassung. Speichern Sie die Datei, werden die Umwandlungen zurückgeschrieben.
Die Datei war also in Ordnung, die gespeicherte ist es nicht – und nichts hat Sie gewarnt. Viele schließen daraus, dass der Export fehlerhaft war, exportieren erneut und bekommen dasselbe Ergebnis. Denn die Beschädigung passiert auf dem eigenen Rechner, nach dem Download.
Die vier Umwandlungen, die den Schaden anrichten
Führende Nullen werden entfernt. Eine Postleitzahl wie 01234, eine französische Départementnummer, eine Kontonummer, eine Telefonnummer mit führender Null – alles sieht nach Zahl aus, also wird die Null als bedeutungslos verworfen. Sie ist aber nicht bedeutungslos, sondern Teil der Kennung.
Lange Zahlen werden gerundet. Eine Tabellenkalkulation speichert Zahlen als Gleitkommazahlen mit etwa fünfzehn signifikanten Stellen. Eine Bestellnummer, eine Kreditkartennummer, eine IMEI oder eine 64-Bit-Kennung wird deshalb stillschweigend gerundet – die letzten Ziffern werden zu Nullen. Die Zelle sieht aus wie eine Zahl und ist die falsche Zahl.
Alles, was nach Datum aussieht, wird umformatiert – nach der lokalen Konvention. 03/05 bedeutet in einem Land März und in einem anderen Mai, also ergibt dieselbe Datei in zwei Büros zwei verschiedene Datensätze. Schlimmer noch: Auch Werte, die nie Datumswerte waren, werden umgewandelt. Ein Genname wie SEPT1 wird zum Datum – ein so hartnäckiges Problem, dass Genetiker die Gene schließlich umbenannt haben, statt weiter dagegen anzukämpfen.
Umlaute und Akzente werden zu Zeichensalat. Eine CSV enthält keine Angabe zu ihrer Zeichenkodierung. Wird eine als UTF-8 gespeicherte Datei als alte Codepage gelesen – oder umgekehrt –, werden genau die Zeilen verstümmelt, in denen Namen mit Umlauten oder Akzenten stehen.
Die Lösung: importieren, nicht öffnen
Doppelklicken Sie niemals auf eine CSV, die Ihnen wichtig ist. Ein Doppelklick erlaubt Excel zu raten – und Excel rät mit großer Überzeugung.
Nehmen Sie stattdessen Daten → Aus Text/CSV. Im Importdialog legen Sie den Typ jeder Spalte fest, bevor irgendetwas ausgewertet wird – markieren Sie die Postleitzahl- und die Kennungsspalte als Text, und sie kommen genau so an, wie sie in der Datei stehen. Außerdem können Sie Kodierung und Trennzeichen selbst angeben, statt sie erraten zu lassen. Das dauert zwanzig Sekunden und ist die ganze Lösung.
In Google Sheets gilt dasselbe: Datei → Importieren, und die Option „Text in Zahlen, Datumsangaben und Formeln umwandeln“ ausschalten. LibreOffice Calc zeigt den Dialog für Spaltentypen standardmäßig an – einer der wenigen Bereiche, in denen es sich schlicht besser verhält.
Erst ansehen, dann importieren
Ist schon etwas schiefgegangen, sehen Sie sich die Datei am besten zuerst an, ohne dass eine Tabellenkalkulation sie anfasst. Die CSV im Viewer zeigt die Werte genau so, wie die Bytes sie enthalten – führende Nullen vorhanden, lange Zahlen vollständig, Datumswerte als der Text, als der sie geschrieben wurden. So sehen Sie sofort, ob der Export oder der Import fehlerhaft war.
Sie sehen dort auch die zwei Dinge, die eine CSV nie über sich selbst verrät: das Trennzeichen – Komma, Semikolon oder Tabulator; europäische Ländereinstellungen exportieren Semikolons, weil dort das Komma das Dezimaltrennzeichen ist – und die Kodierung. Wenn Sie beides vor dem Import kennen, entfällt der größte Teil des restlichen Ratens.
Wenn Sie die CSV erzeugen
Ein paar Entscheidungen beim Export verhindern all das später.
Schreiben Sie UTF-8 mit Byte Order Mark (BOM), wenn die Datei für Excel unter Windows bestimmt ist. Excel erkennt UTF-8 an dieser Markierung und verstümmelt ohne sie Umlaute und Akzente – einer der seltenen Fälle, in denen ein BOM die richtige Wahl ist und kein Ärgernis.
Setzen Sie jedes Feld in Anführungszeichen, das missverstanden werden könnte, und Kennungsspalten immer. Anführungszeichen verhindern nicht, dass Excel beim Öffnen umwandelt, machen die Absicht aber für jedes andere Programm eindeutig.
Überlegen Sie, ganz auf CSV zu verzichten. Kann der Empfänger JSON oder eine echte Tabellenkalkulationsdatei verarbeiten, tragen beide die Datentypen ausdrücklich mit sich und haben keines dieser Probleme. Die Stärke von CSV ist, dass alles es lesen kann; die Schwäche, dass sich nichts einig ist, was darin steht.
Die passenden Tools
Häufig gestellte Fragen
Kann ich den Schaden nach dem Speichern rückgängig machen?
Nicht zuverlässig. Eine entfernte führende Null und eine gerundete Ziffer sind weg – in der Datei gibt es nichts, woraus sie sich wiederherstellen ließen. Exportieren Sie erneut aus der ursprünglichen Quelle; deshalb lohnt es sich, den Originalexport unangetastet aufzubewahren.
Warum öffnet sich meine CSV als eine einzige lange Spalte?
Das Trennzeichen passt nicht zu dem, was die Tabellenkalkulation erwartet – meist eine Datei mit Semikolons in einer Komma-Ländereinstellung oder umgekehrt. Im Importdialog können Sie es angeben; das geht schneller, als die Regionaleinstellungen Ihres Systems zu ändern.
Was ist das seltsame Zeichen am Anfang meines ersten Spaltennamens?
Ein Byte Order Mark, das als Text statt als Kodierungshinweis gelesen wurde. Es ist dieselbe Markierung, die in Excel Umlaute und Akzente rettet – deshalb ist sie nützlich und lästig zugleich. Die meisten ordentlichen CSV-Parser entfernen sie automatisch.
Gibt es einen CSV-Standard?
Nur eine unverbindliche Spezifikation von 2005, die beschreibt, was die meisten Tools tun – und reichlich Software, die etwas anderes tut. Deshalb variieren Trennzeichen, Anführungszeichen, Zeilenenden und Kodierungen, und deshalb funktioniert bei echten Dateien nur, sie zu erkennen, statt sie vorauszusetzen.
Warum ist eine Zeile in meinem Texteditor auf mehrere Zeilen verteilt?
Weil ein Feld in Anführungszeichen zulässigerweise Zeilenumbrüche enthalten darf – typischerweise ein Adressfeld. Der Datensatz ist trotzdem eine Zeile. Alles, was die Datei an Zeilenumbrüchen aufteilt, beschädigt genau diese Zeilen – deshalb ist das Aufteilen an Kommas oder Zeilenumbrüchen der falsche Weg, eine CSV zu lesen.
Ebenfalls lesenswert
PDF zu groß für E-Mail
Die drei Gründe, warum ein PDF groß ist – und welche Lösung zu Ihrem passt.
Welches Bildformat?
Eine Frage entscheidet. JPG, PNG, WebP und AVIF ehrlich verglichen.
Gescannte PDFs und OCR
Warum ein Scan keinen Text enthält, was OCR hinzufügt und welche Einstellung die Genauigkeit bestimmt.