Wie kann Excel dazu gebracht werden, das Komma als Standardtrennzeichen in CSV-Dateien zu interpretieren?

95

Ich habe eine Reihe von CSV-Dateien. Einige von ihnen sind durch Kommas getrennt, andere durch Tabulatoren (vielleicht sollten sie .tsv heißen ...)

Die csvErweiterung wird mit Excel verknüpft, wenn Excel installiert wird. Wenn ich jedoch eine dieser Dateien mit Excel öffne, wird alles in dieselbe Spalte verschoben und das Komma wird nicht als Trennzeichen interpretiert.

Ich kann anstelle von Datei -> Importieren ... die Datei auswählen und die genaue Interpretationsmethode für den Inhalt auswählen (Trennzeichen, Datentypen usw.). Meistens möchte ich die Datei jedoch nur übersichtlich betrachten Tabellenansicht. Ich möchte es nicht mit Excel verarbeiten.

Gibt es eine Möglichkeit, Excel zu veranlassen, das Trennzeichen automatisch zu interpretieren und die CSV-Datei als richtige Tabelle anzuzeigen, sobald sie geöffnet wird? Ich benötige dies, damit ich Excel als Schnellansicht für solche Dateien verwenden kann.

Ich vermute, es muss einen Weg geben, sonst würde sich Excel nicht mit CSV-Dateien verbinden.

Szabolcs
quelle
Ich verstehe wirklich, dass die gewählte Antwort Ihre Frage beantwortet, aber die zweite sollte hervorgehoben werden, da sie eine globale Lösung bietet, die Acros-Sharing per E-Mail, Netzwerk usw. ermöglicht.
Rafareino

Antworten:

81

Beim Öffnen von CSV-Dateien verwendet Excel eine Systemregionaleinstellung, die aufgerufen wird List separator, um zu bestimmen, welches Standardtrennzeichen verwendet werden soll.

Microsoft Excel öffnet CSV-Dateien. Abhängig von den regionalen Einstellungen des Systems wird möglicherweise ein Semikolon als Trennzeichen anstelle eines Kommas erwartet, da in einigen Sprachen das Komma als Dezimaltrennzeichen verwendet wird. (aus Wikipedia )


Unter Windows können Sie die List separatorEinstellung Regional and Language Optionswie auf der Office-Support-Website angegeben ändern :

Ändern Sie das Trennzeichen in einer CSV-Textdatei

  1. Klicken Sie auf das Windows-Startmenü.
  2. Klicken Sie auf Systemsteuerung.
  3. Öffnen Sie das Dialogfeld Regions- und Sprachoptionen.
  4. Klicken Sie auf die Registerkarte Regionale Einstellungen.
  5. Klicken Sie auf Anpassen / Zusätzliche Einstellungen (Win10).
  6. Geben Sie ein neues Trennzeichen in das Feld Listentrennzeichen ein.
  7. Klicken Sie zweimal auf OK.

Hinweis : Dies funktioniert nur, wenn das Dezimaltrennzeichen nicht auch als Komma gekennzeichnet ist (in Übereinstimmung mit dem obigen Wikipedia-Zitat). Wenn dies der Fall ist, wird in Excel kein Komma als Listentrennzeichen verwendet, auch wenn dies ausgewählt ist. In vielen Regionen außerhalb der USA ist Komma das standardmäßige Dezimaltrennzeichen.

Auf Mac OS X , ist diese Einstellung aus der abgeleitet zu werden scheint Dezimaltrennzeichens Einstellung (in der Sprache & Region Bereich von Systemeinstellungen , gehen Sie auf Erweitert ). Wenn das Dezimaltrennzeichen ein Punkt ist, ist das CSV-Standardtrennzeichen ein Komma. Wenn das Dezimaltrennzeichen ein Komma ist, ist das CSV-Standardtrennzeichen ein Semikolon.

Wie Sie selbst in dem Kommentar gesagt haben, gibt es für Mac-Benutzer eine Alternative, um schnell auf diese CSV-Dateien zuzugreifen. Es ist ein Plugin für Quick Look namens quicklook-csv , das die Separatorerkennung übernimmt.

Zakinster
quelle
Danke, das macht Sinn. Ich denke, dann werden Tabulatoren nur nicht standardmäßig als Trennzeichen interpretiert (was auch sinnvoll ist, da CSV für kommagetrennte Werte steht, aber in der Praxis werden Tabulatoren in CSVs verwendet, und damit muss ich mich befassen).
Szabolcs
@Szabolcs Excel versucht nicht, das Trennzeichen beim Öffnen einer CSV-Datei zu erkennen (mit file-> open oder dem Explorer ), sondern verwendet nur die Systemeinstellung. Das Trennzeichen (Tabulator, Komma, Semikolon oder Leerzeichen) wird jedoch automatisch erkannt, wenn die Importfunktion verwendet wird .
Zakinster
1
Ihre Antwort war auch unter OS X gültig: Es ist immer noch das Dezimalzeichen / Komma, das die "Mühe" verursacht (wie Sie in der Antwort erwähnt haben).
Szabolcs
1
Später bearbeiten: Entschuldigung! das funktioniert! Anscheinend muss man das Programm neu starten und / oder sich wieder abmelden, um die Änderung zu übernehmen. Ich weiß nicht genau wann, aber kurz nach meinem Wechsel hat das plötzlich geklappt.
mmo
1
Vergessen Sie unter Mac OS X nicht, Excel zu beenden, nachdem Sie die Änderungen vorgenommen haben. Excel bleibt geöffnet, wenn Sie nur alle offenen Blätter schließen. Klicken Sie auf Excel> Excel beenden oder drücken Sie einfach Befehlstaste + Q und Sie sind fertig.
Paulo Pedroso
94

Wenn Sie das Format der Datei nicht ändern möchten und NUR auf Excel abzielen, können Sie den folgenden Excel-Trick verwenden, um Hilfe zu erhalten.

Fügen Sie oben in der Datei eine neue Zeile mit dem Text "sep=,"(einschließlich Anführungszeichen) hinzu, damit Excel die Datei mit "," als Listentrennzeichen öffnet.

Es ist ein sehr einfacher Trick, um zu vermeiden, dass Ihre regionalen Windows-Einstellungen geändert werden, und ein konsistentes Ergebnis zu erzielen. Aber es ist Excel-spezifisch.

user280725
quelle
1
Verwenden Sie diese Option nur, um die Datei anzusehen und nicht zu ändern. Andernfalls kann es zu einem der folgenden Probleme kommen: theonemanitdepartment.wordpress.com/2014/12/15/…
Wouter
Noch besser, wenn Sie diese Datei an andere weitergeben müssen, um sicherzustellen, dass Excel die Datei verstehen kann, unabhängig von deren Konfiguration. Ich benutze immer csv, um in der Lage zu sein, ein Versionskontrollsystem zu verwenden, um diese Dateien zu teilen und zusammenzuarbeiten, habe aber mit Komma gegen Semikolon zu kämpfen und immer alle unter Druck gesetzt, ihre Konfiguration nicht mehr zu ändern. Danke vielmals!
Rafareino
1
Allein auf was?
NateS
11

Sie brauchen keine Anführungszeichen um die sep=,- solange es die erste Zeile der Datei ist, funktioniert es, zumindest mit Excel 2016.

Ich habe festgestellt, dass, wenn die Datei durch Tabulatoren getrennt ist sep=\t, dies mit und ohne Anführungszeichen funktioniert.

Stephen Hemingway
quelle
4

Die akzeptierte Antwort ist richtig, aber ich bin eine visuelle Person. Hier ist jeder einzelne Schritt im Screenshot-Format, wie dies in Windows 10 gemacht wird.

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Sam B
quelle
2
Sehr hilfreich! Denken Sie daran (wie bereits oben erwähnt), dass List separatordies ignoriert wird, wenn dasselbe Symbol für verwendet wird Decimal symbol. Sie werden oft feststellen , ,wie Dezimalsymbol, so stellen Sie sicher , dass es zu etwas zu ändern , sonst (zB .) bei der Einstellung List separatorzu ,.
Dirk
1

Wenn das Trennzeichen in den Ländereinstellungen kein Komma, sondern ein Semikolon (niederländisches Trennzeichen) ist, benennen Sie die CSV-Datei in eine TXT-Datei um. Klicken Sie mit der rechten Maustaste auf die TXT-Datei und wählen Sie "Öffnen mit" und wählen Sie "Excel". Wählen Sie in Excel die erste Spalte aus, wählen Sie Daten in der Multifunktionsleiste aus und trennen Sie den Text in Spalten.

ODER

Installieren Sie LibreOffice und öffnen Sie die CSV-Datei mit LibreOffice Calc.

Eric VDB
quelle
1

Ich hatte eine .csvDatei mit Trennzeichen ;und regionalen Einstellungen, die auf Listentrennzeichen eingestellt waren ;. Excel hat die Spalten jedoch immer noch nicht analysiert.

Bildbeschreibung hier eingeben

Es stellte sich heraus, dass es sich um ein Codierungsproblem handelte. Die Dateien wurden aus SQL Server Management Studio 2005 exportiert und in codiert UCS-2 LE BOM. Mit Notepad ++ habe ich die Codierung auf umgestellt UTF-8und alles hat funktioniert.

Ogglas
quelle
0

Überprüfen Sie die CSV-Datei unbedingt in einem einfachen Editor wie Notepad, um sicherzustellen, dass sie ordnungsgemäß formatiert ist.

Ich habe diese Antwort hinzugefügt, nachdem ich einen dummen Fehler behoben hatte, bei dem mit VB erstellte CSV-Dateien nicht mit separaten Spalten in Excel geöffnet wurden. Ich entdeckte, dass die Art und Weise, wie ich die Zeilen geschrieben hatte, jede Zeile in Anführungszeichen setzte. Excel hat die Anführungszeichen ausgeblendet und die gesamte Zeile in Spalte A angezeigt, sodass es so aussah, als hätte es meine Kommatrennzeichen ignoriert.

edj
quelle
0

Der beste Weg ist, es in einer Textdatei mit der Erweiterung csv zu speichern

Sub ExportToCSV()
    Dim i, j As Integer
    Dim Name  As String

    Dim pathfile As String


    Dim fs As Object
        Dim stream As Object

        Set fs = CreateObject("Scripting.FileSystemObject")
    On Error GoTo fileexists

    i = 15
    Name = Format(Now(), "ddmmyyHHmmss")
    pathfile = "D:\1\" & Name & ".csv"

    Set stream = fs.CreateTextFile(pathfile, False, True)

fileexists:

    If Err.Number = 58 Then
        MsgBox "File already Exists"
        'Your code here
        Return
    End If
    On Error GoTo 0

    j = 1
    Do Until IsEmpty(ThisWorkbook.ActiveSheet.Cells(i, 1).Value)

        stream.WriteLine (ThisWorkbook.Worksheets(1).Cells(i, 1).Value & ";" & Replace(ThisWorkbook.Worksheets(1).Cells(i, 6).Value, ".", ","))

        j = j + 1
        i = i + 1
    Loop

stream.Close

End Sub
AzizD
quelle
0

Für Holländer hatte ich ein Problem, dass Excel 2008 unter Windows 7 RFC4180 nicht einhielt:

"Felder, die Zeilenumbrüche (CRLF), doppelte Anführungszeichen und Kommas enthalten, sollten in doppelte Anführungszeichen eingeschlossen werden."

Eine durch Kommas getrennte Datei enthielt korrekterweise Felder mit einem Komma (niederländisches Dezimaltrennzeichen) in doppelten Anführungszeichen. In den Niederlanden ist das Dezimaltrennzeichen ,und das Listentrennzeichen ;so, dass Excel eine ,für beide verwendete Datei nicht lesen konnte (auch nicht, nachdem das Listentrennzeichen ,in der Systemsteuerung explizit geändert wurde).

Die Eingabe sieht folgendermaßen aus:

"06-07-2017 17:03:18","********",0:01:04,Uitgaand,"0,1879","0,2273","0,0395",21

Die Lösung wurde von @ user280725 gegeben:

Verwenden Sie den Editor, um als erste Zeile einzufügen:

sep=,

(Dies bedeutet, dass der Hinweis des Benutzers @zakinster in seiner Lösung nicht mehr zutreffen muss.)


Interessant: Wenn die CSV-Datei noch geladen ist und Sie das Gebietsschema in der Systemsteuerung auf US-Englisch setzen und die Datei speichern, wurde sie in das US-Englisch-Format konvertiert (Komma als Listentrennzeichen und Punkt als Dezimaltrennzeichen).

Paul Ogilvie
quelle