Skip navigation
  1. Home
  2. Guide
  3. Export Google Form data to SPSS
Step 6/11 · Data and scales

Moving data from Google Forms to SPSS: from a CSV file to analysis-ready data

A step-by-step guide to bringing Google Form responses into IBM SPSS without broken accents, mis-coded scales or lost rows.

  • The AutoFillForm team
  • Update
  • 9 min read

Quick summary

  • Prefer Link to Sheets and download Microsoft Excel (.xlsx): fewer Vietnamese font errors than CSV, and it keeps the codebook sheet too.
  • Keep the original sheet, work on a copy, replace long question titles with short codes like TC1, TC2 and make a codebook.
  • Don't use Automatic Recode for text Likert scales: SPSS numbers alphabetically, so "Bình thường" (Neutral) may become 1, while "Hoàn toàn không đồng ý" (Strongly disagree) gets a higher code than "Đồng ý" (Agree).
  • Checkbox questions export several answers in one cell and need splitting into 0/1. dummy variables
  • After importing, run Frequencies to catch out-of-range and missing values before Cronbach's Alpha.

The whole process in 6 steps

To export Google Form data to SPSS cleanly you need more than one "Download" click. Most analysis errors (skewed scales, negative alpha, garbled Vietnamese) start at data preparation. The order to follow:

  1. Export responses from Google Forms (CSV or via Google Sheets).
  2. Clean a copy: set variable codes, make a codebook, drop invalid rows.
  3. Import into SPSS in Unicode mode.
  4. Code text as numbers, split checkbox questions, reverse negative items.
  5. Set up Variable View.
  6. Check with Frequencies.

If the questionnaire is still being designed, first read how to build a proper Google Form survey: choosing the right question types from the start lets you skip most of the coding.

Two ways to export data from Google Forms

Method 1: download the CSV directly

In Google Forms, open the tab Responses, click the icon ⋮ then choose Download responses (.csv) . Google downloads a .zip with the CSV file (Google, n.d.). It is quick but only a snapshot at download time.

Method 2: link to Google Sheets and download .xlsx

Also in the Responses tab, choose Link to Sheets and create a new sheet. Every new response flows into it. When collection and cleaning are done, go to File → Download → Microsoft Excel (.xlsx) , or choose CSV if needed.

Prefer .xlsx for two reasons. First, .xlsx stores text as Unicode, so SPSS reads Vietnamese accents correctly without choosing a code page. Second, CSV only exports the open sheet, while .xlsx keeps both the data and codebook sheets. CSV still works for tools that only take CSV, as long as it stays UTF-8.

Preparing the data in Google Sheets

Keep the raw data

Never edit the sheet Google Forms writes to. Duplicate it (right-click the sheet name → Copy) and only work on the copy. When in doubt, you can always compare with the raw data.

Replace long titles with variable codes and make a codebook

Google Sheets uses the full question as the column header, which is not a valid SPSS variable name. Replace them with short codes by construct (TC1, TC2… for "Reliability"; HL1, HL2… for "Satisfaction") and create a separate sheet named codebook:

Codebook sheet example
Variable codeFull questionScaleValue labelsNotes
TC1Staff resolve my requests on timeLikert 1–51 = Strongly disagree … 5 = Strongly agree
TC4I often have to ask several times to get an answerLikert 1–5Same as TC1Reverse item
GIOITINHYour genderNominal1 = Male, 2 = Female, 3 = Other
GOPYOther comments (open question)TextNot codedKeep as string

Dropping invalid rows

  • Test responses: delete the rows you filled in while testing the form, identified by the Timestamp before the official link went out.
  • Failed screening: drop respondents who "have never used the service" if the population is existing customers. Only apply criteria written in your proposal.
  • Duplicates: use Data → Data cleanup → Remove duplicates or in SPSS Data → Identify Duplicate Cases. Only treat rows as duplicates when they are identical in every column, including open questions.

Importing into SPSS and handling Vietnamese text

Turn on Unicode mode first

Go to Edit → Options, tab Language, item Character Encoding for Data and Syntax, choose Unicode (universal character set). This option can only be changed when no data set is open. Recent SPSS versions default to Unicode, but lab computers sometimes still use the system locale (IBM, n.d.).

Importing an Excel or CSV file

Use File → Import Data → Excel for an .xlsx file, choose the data sheet (not the codebook) and tick Read variable names from first row of data. For CSV, use File → Import Data → CSV Data, with a comma delimiter and double-quote text qualifier, since open answers may contain commas. If Vietnamese text is still broken, import via File → Import Data → Text Data and choose UTF-8 encoding in the wizard, or use the syntax GET DATA /TYPE=TXT with /ENCODING='UTF8'.

Coding text answers as numbers

Question Linear scale exports numbers 1–5, so it is usable in SPSS right away. Questions using Multiple choice and Multiple choice grid export the choice text exactly, so SPSS treats them as String variables and every quantitative analysis needs a coding step. That's why the article Likert scales in Google Forms recommends Linear scale for Likert questions.

The Automatic Recode trap

Many people use Transform → Automatic Recode to save time. It numbers strings alphabetically, not by scale meaning, so the result is completely wrong:

Automatic Recode (wrong) vs correct coding
AnswerAutomatic RecodeCorrect code
Neutral13
Agree24
Strongly agree35
Strongly disagree41
Disagree52

The exact order may vary slightly with how SPSS sorts accented characters, but it never matches the Likert order. The usual result is an abnormally low alpha or puzzling negative correlations.

Recoding correctly

Use Transform → Recode into Different Variables with each Old Value → New Value pair, or run the syntax. Tip: name the text column TC1_TXT so the numeric variable after coding is TC1:

RECODE TC1_TXT ('Strongly disagree'=1) ('Disagree'=2) ('Neutral'=3) ('Agree'=4) ('Strongly agree'=5) (ELSE=SYSMIS) INTO TC1. * A numeric column read as a string (e.g. age). RECODE TUOI_TXT (CONVERT) INTO TUOI. EXECUTE.

The strings in RECODE must match exactly, including case and accents. If TC1 has more SYSMIS cells than TC1_TXT has blanks, some choice was typed incorrectly.

Checkbox and open questions

Question Checkboxes write every choice into one cell, separated by commas, e.g. "Facebook, Zalo". Split each choice into a 0/1 dummy variable:

COMPUTE KENH_FB = CHAR.INDEX(KENH, 'Facebook') > 0. COMPUTE KENH_ZALO = CHAR.INDEX(KENH, 'Zalo') > 0. VALUE LABELS KENH_FB KENH_ZALO 0 'Not chosen' 1 'Chosen'. EXECUTE.

Condition: choice names contain no commas and are not part of other choice names. Open questions (Paragraph, Short answer) should stay as strings for quoting, or be hand-coded into themes in a separate variable.

Setting up Variable View and SPSS syntax

In Variable View, at minimum set these columns correctly:

  • Name: starts with a letter, no spaces, unique, at most 64 bytes, avoid ending with a full stop. Don't use Vietnamese accents: accented characters take several bytes and break easily when sharing files.
  • Label: the full question, with accents.
  • Values: a label for each code, e.g. 1 = Strongly disagree.
  • Missing: the code for missing values (e.g. 9), if you use a code instead of leaving it blank.
  • Measure: Scale for quantitative variables (age, income), Ordinal for Likert questions, Nominal for gender, occupation. This column mainly affects charts and the procedures SPSS suggests.

The reverse item (TC4) must be reversed before scoring or reliability. The syntax block below declares the information above and reverses TC4 into a new variable TC4R, keeping the original:

VARIABLE LABELS TC1 'Staff resolve my requests on time' /TC4 'I often have to ask several times to get an answer' /GIOITINH 'Gender'. VALUE LABELS TC1 TO TC4 1 'Strongly disagree' 2 'Disagree' 3 'Neutral' 4 'Agree' 5 'Strongly agree' /GIOITINH 1 'Male' 2 'Female' 3 'Other'. MISSING VALUES TC1 TO TC4 GIOITINH (9). VARIABLE LEVEL TC1 TO TC4 (ORDINAL) /GIOITINH (NOMINAL) /TUOI (SCALE). RECODE TC4 (1=5) (2=4) (3=3) (4=2) (5=1) INTO TC4R. VARIABLE LABELS TC4R 'TC4 (reversed)'. VALUE LABELS TC4R 1 'Strongly disagree' 2 'Disagree' 3 'Neutral' 4 'Agree' 5 'Strongly agree'. EXECUTE.

Keyword TO is only correct when TC1 to TC4 are adjacent in the file. Save the block as an .sps file to rerun when needed.

If you use AutoFillForm's SPSS module, the page SPSS data export downloads coded CSV, labelled CSV and an .sps file with variable and value labels; import CSV checks an existing CSV file against the model. Simulated data is only for testing the questionnaire and practising syntax, never a replacement for real survey data.

Download the IBM SPSS .SPS file or coded CSV once the data meets the standard
AutoFillForm screenshot: download the IBM SPSS .SPS file or coded CSV once the data meets the standard

Checking the data after import

Before any test, run Analyze → Descriptive Statistics → Frequencies for every coded variable and read two things: out-of-range values (0, 6 or 55 on a 1–5 scale) and the number of Missing values per variable. Field (2018) and Tabachnick & Fidell (2013) both treat data screening as mandatory, since one data-entry error can skew every coefficient that follows.

FREQUENCIES VARIABLES=TC1 TO TC4 TC4R GIOITINH
  /STATISTICS=MINIMUM MAXIMUM
  /ORDER=ANALYSIS.
  • Missing values on required questions usually mean the coding doesn't match.
  • Blanks from branching are "not applicable" and must be kept apart from real missing values.
  • When missingness is small and random, handling methods usually give similar results; larger amounts need a look at the missing-data mechanism (Tabachnick & Fidell, 2013). State your decision in the report.

Once the data is clean, the next step in the roadmap is testing Cronbach's Alpha for each scale (Hoàng Trọng & Chu Nguyễn Mộng Ngọc, 2008).

Checklist before analysis

  • The original from Google Forms is saved and only a copy is edited.
  • Column headers are short unaccented unique variable codes; there is a codebook.
  • Test, failed-screening and duplicate responses dropped and the counts recorded.
  • SPSS is in Unicode mode; Vietnamese text shows correctly in Data View.
  • Text Likert questions are recoded by hand in the right 1–5, order, without Automatic Recode.
  • Checkbox questions split into 0/1 variables; open questions kept as strings or coded separately.
  • Reverse items have a new variable (TC4R) used instead of the original.
  • Label, Values, Missing and Measure declared; the syntax saved as an .sps file.
  • Frequencies show no out-of-range values; the row count matches the valid responses reported.

Frequently asked questions

Link the form to Google Sheets and download Microsoft Excel (.xlsx). The .xlsx file stores text as Unicode, so SPSS reads Vietnamese accents correctly and keeps several sheets, including the codebook. CSV still works if you import it as UTF-8 and never open and re-save it in Excel, which easily breaks accented characters.
Usually SPSS is in the system-locale encoding, or the CSV was re-saved by Excel in another code page. Close all data sets, go to Edit, Options, Language tab and choose Unicode for Character Encoding for Data and Syntax, then import again from the original file downloaded from Google, preferably .xlsx.
No. Automatic Recode numbers strings alphabetically, so "Bình thường" (Neutral) can become 1 and "Không đồng ý" (Disagree) 5, scrambling the scale. Use Recode into Different Variables or RECODE with each value pair, then compare the frequency tables before and after coding to make sure no cell was missed.
Google Forms writes all choices into one cell, separated by commas. Create one dummy variable per choice, 1 if chosen and 0 if not, e.g. with CHAR.INDEX in a COMPUTE command. Then run frequencies per variable or group them into a Multiple Response Set to report selection rates.
Technically Unicode mode allows it, but don't. Variable names are limited to 64 bytes, accented characters take several bytes, and they break easily on other machines or software such as SmartPLS. Use short unaccented codes like TC1, HL2 and put the full question in the Label column.

References

  1. IBM. (n.d.). IBM SPSS Statistics documentation. https://www.ibm.com/docs/en/spss-statistics
  2. Google. (n.d.). Docs Editors Help: Google Forms. https://support.google.com/docs
  3. Field, A. (2018). Discovering statistics using IBM SPSS Statistics (5th ed.). SAGE Publications.
  4. Tabachnick, B. G., & Fidell, L. S. (2013). Using multivariate statistics (6th ed.). Pearson.
  5. Hoàng Trọng, & Chu Nguyễn Mộng Ngọc. (2008). Phân tích dữ liệu nghiên cứu với SPSS [Analysing research data with SPSS] (Vol. 1 and 2). Hồng Đức Publishing House.

The thresholds in this article are common conventions in the sources above. Check them against your supervisor's or target journal's requirements.

100 Credit for new accounts

Start with your form

Import, set up and see the cost before running.

Create a free account