SPSS-Datei in Excel öffnen: .sav in CSV umwandeln

Kurz gesagt: Excel kann eine .sav-Datei nicht öffnen. Sie wandeln sie zuerst in eine CSV um, mit R, Python oder einem kostenlosen Programm wie PSPP, jamovi oder JASP, und importieren die CSV dann in Excel. Das hat einen Preis: Eine CSV behält entweder die Codes oder die Wertelabels, und Variablenlabels, Fehlwert-Definitionen und Gewichtung fallen weg. Wer nur sehen will, was in einer Datei steckt, muss gar nichts umwandeln.

Nur reinschauen? Der kostenlose SPSS-Inspector öffnet die .sav im Browser und zeigt jede Variable mit Labels und Häufigkeiten. Es wird nichts hochgeladen und nichts installiert.

Was eine .sav-Datei enthält, eine Tabelle aber nicht

Eine .sav-Datei ist das Datenformat von SPSS. Neben der Antworttabelle speichert sie Metadaten: ein Label für jede Variable („q7“ heißt „Wie wahrscheinlich ist es, dass Sie uns weiterempfehlen?“), ein Label für jeden Wert (1 = „sehr unwahrscheinlich“), die Codes, die als fehlend gelten, das Messniveau und oft auch, welche Variable die Stichprobe gewichtet.

Eine Tabellenkalkulation hat pro Wert eine Zelle und eine Kopfzeile, für das meiste davon ist dort kein Platz. Jeder Weg nach Excel geht deshalb denselben Tausch ein. Klären Sie vorher, was Sie brauchen: die Labels, damit andere die Tabelle lesen können, oder die Codes, damit Sie damit rechnen können.

Umwandeln mit R

R liest .sav-Dateien mit dem Paket haven. as_factor() ersetzt die Codes durch ihre Wertelabels, Sie wählen also, welche Fassung Sie schreiben:

install.packages("haven")
library(haven)

daten <- read_sav("befragung.sav")

# Codes, zum Rechnen
write.csv(zap_labels(daten), "befragung-codes.csv", row.names = FALSE, fileEncoding = "UTF-8")

# Wertelabels, zum Lesen
write.csv(as_factor(daten), "befragung-labels.csv", row.names = FALSE, fileEncoding = "UTF-8")

Wenn Sie danach in R weiterarbeiten, lassen Sie die Daten, wie sie sind. haven hält die Variablenlabels als Attribute fest, und as_factor() macht einzelne Spalten bei Bedarf zu beschrifteten Faktoren.

Umwandeln mit Python

pandas liest .sav-Dateien über das Paket pyreadstat. Installieren Sie beide mit pip install pandas pyreadstat. Standardmäßig ersetzt read_spss() die Codes durch ihre Wertelabels:

import pandas as pd

df = pd.read_spss("befragung.sav")  # Wertelabels
df.to_csv("befragung-labels.csv", index=False, encoding="utf-8")

codes = pd.read_spss("befragung.sav", convert_categoricals=False)  # Codes
codes.to_csv("befragung-codes.csv", index=False, encoding="utf-8")

Für die Variablenlabels rufen Sie pyreadstat direkt auf. pyreadstat.read_sav() gibt neben den Daten ein Metadaten-Objekt zurück, und meta.column_names_to_labels ordnet jeder Spalte ihren Fragetext zu. Daraus wird auf einem zweiten Tabellenblatt ein kleines Codebuch.

Umwandeln ohne Code: PSPP, jamovi, JASP

Drei kostenlose Desktop-Programme öffnen .sav-Dateien direkt. jamovi und JASP bedienen Sie per Mausklick, beide exportieren die Daten über das Datei-Menü als CSV. PSPP sieht aus wie SPSS und funktioniert auch so; für den Export genügt eine Zeile Syntax:

SAVE TRANSLATE /OUTFILE='befragung.csv' /TYPE=CSV /FIELDNAMES /CELLS=LABELS.

/CELLS=LABELS schreibt die Wertelabels, /CELLS=VALUES die Codes. Bei allen drei Programmen bleibt die Datei auf Ihrem Rechner.

Die CSV in Excel öffnen

Beim Doppelklick auf eine CSV rät Excel Trennzeichen und Zeichenkodierung, und es rät oft falsch: Aus Umlauten werden Zeichensalat, aus der Postleitzahl 01067 wird 1067. Importieren Sie die Datei stattdessen über Daten > Aus Text/CSV, wählen Sie UTF-8 als Dateiursprung und prüfen Sie die Vorschau, bevor Sie laden. Sind die Umlaute schon kaputt, erklärt der Beitrag Mojibake: kaputte Umlaute reparieren, was passiert ist und wie Sie es beheben.

Danach kommen die fehlenden Werte. Codes wie 99 für „keine Angabe“ landen als gewöhnliche Zahlen in der Tabelle, und Excel rechnet sie in jeden Mittelwert ein. Filtern oder löschen Sie sie pro Frage, bevor Sie irgendetwas berechnen.

Warum kein Online-Konverter?

Viele Treffer für „sav in csv umwandeln“ sind Websites, die die Datei für Sie umwandeln. Das funktioniert, nur landen die Rohdaten dabei auf einem Server, dessen Betreiber, Standort und Löschfristen Sie nicht kennen. Befragungsdateien enthalten oft Postleitzahlen, Altersangaben, Freitextantworten und manchmal E-Mail-Adressen. Nach DSGVO bräuchten Sie für diese Weitergabe eine Rechtsgrundlage und einen Auftragsverarbeitungsvertrag, und beides haben Sie mit einem anonymen Konverter nicht. Die lokalen Wege oben dauern fünf Minuten länger und ersparen Ihnen die Frage.

Welcher Weg passt

Sie wollen …Nutzen Sie
sehen, was in der Datei stecktSPSS-Inspector, im Browser
einmal umwandeln, ohne Codejamovi, JASP oder PSPP
regelmäßig oder automatisiert umwandelnR (haven) oder Python (pandas, pyreadstat)
auswerten, mit Kreuztabellen, Gewichtung und DiagrammenExcel auslassen und die .sav in ein Auswertungstool importieren

In der letzten Zeile entpuppt sich manche Umwandlung als Umweg. Man exportiert nach Excel, weil man eine Tabelle nach Altersgruppen oder ein Diagramm für eine Folie braucht, und baut dann Gewichtung und Labels von Hand nach. DataLion importiert die .sav mit Variablenlabels, Wertelabels, fehlenden Werten und Gewichtungsvariable, baut daraus Kreuztabellen und Dashboards und exportiert trotzdem nach Excel, wenn jemand eine Tabelle braucht. Wie die Auswertung Schritt für Schritt abläuft, steht im Leitfaden SPSS-Datei auswerten ohne SPSS.

Nächster Schritt

Öffnen Sie die Datei zuerst im SPSS-Inspector und notieren Sie, welche Codes „keine Angabe“ bedeuten und ob es eine Gewichtungsvariable gibt. Dann wählen Sie den Weg aus der Tabelle oben. Soll am Ende ein Bericht stehen und keine Tabelle, importieren Sie die Datei in DataLion und starten im Free-Tarif zum Einstieg.

Häufige Fragen

Kann Excel eine .sav-Datei öffnen?
Nein. Excel hat keinen Import für SPSS-Systemdateien. Wandeln Sie die .sav zuerst in eine CSV um, mit R, Python, PSPP, jamovi oder JASP, und öffnen Sie die CSV in Excel über Daten > Aus Text/CSV.
Wie wandle ich eine .sav-Datei ohne SPSS in CSV um?
In R mit haven::read_sav() und write.csv(), in Python mit pandas.read_spss() (braucht das Paket pyreadstat) und to_csv(). Ohne Code öffnen Sie die Datei in PSPP, jamovi oder JASP und exportieren sie als CSV. Alle Wege sind kostenlos, und die Daten bleiben auf Ihrem Rechner.
Gehen die Wertelabels bei der Umwandlung in CSV verloren?
Eine CSV-Zelle enthält entweder den Code oder das Label, nie beides. Variablenlabels, Fehlwert-Definitionen und die Gewichtung fallen ganz weg. Exportieren Sie Labels zum Lesen und Codes zum Rechnen, und legen Sie das Codebuch neben die CSV.
Kann ich einen Online-Konverter für SAV zu CSV nutzen?
Ein Online-Konverter lädt Ihre Rohdaten auf einen Server, über den Sie nichts wissen. Für Befragungsdaten mit personenbezogenen Angaben ist das meist nicht zulässig. R, Python, PSPP, jamovi und JASP wandeln lokal um, und der kostenlose SPSS-Inspector zeigt den Inhalt der Datei ganz ohne Upload.
Warum sind die Umlaute nach der Umwandlung kaputt?
Die CSV wurde in einer Zeichenkodierung geschrieben und in einer anderen geöffnet. Speichern Sie die CSV als UTF-8 und importieren Sie sie in Excel über Daten > Aus Text/CSV mit UTF-8 als Dateiursprung, statt sie per Doppelklick zu öffnen.

← Zurück zum Blog