Forms

How to analyse survey results

Analyse survey results in six passes: export every response to one sheet, clean it, count each answer, turn counts into percentages of the people who answered, cross tab the key questions against one segment, and code the open answers into themes. A spreadsheet with pivot tables handles every step.

· Co-founder

6 min read · Published

To analyse survey results, export all responses to a spreadsheet, keep the raw file untouched, clean a working copy, count each answer, convert counts into percentages of the people who answered that question, cross tab the questions that matter by one segment, and code open comments into a handful of themes. Pivot tables do most of the counting. The judgement is in choosing the base for each percentage and refusing to over read small groups.

Export first, and know the shape of the file

Before any formula, open the export and read the header row. Most form tools write one row per response and one column per question, but they differ in how they write questions with several parts. A rating grid, an address or a multiple choice question can arrive as one column holding several values, or as several columns. That decides every step that follows.

Take the course evaluation form from a fictional training institute. It asks which of four classes the student sat in, then three rating grids: the teaching, the materials and the outcome. The outcome grid rates three tasks as not yet, with help or confidently. Exported as a single column, one student’s outcome cell might read like this:

I can do bank reconciliations: Confidently | I can prepare a BAS: With help | I can set up a chart of accounts: Not yet

Save the raw export as the first sheet and never touch it again. Do all cleaning on a copy, so any figure can be traced back to what was actually submitted.

Clean before you count

Cleaning is dull and decides whether the numbers are right.

Remove tests. Delete responses submitted before the survey went live, identified by date and time.

Split joined columns. Use Text to Columns in Excel or SPLIT in Google Sheets on the separator, here the pipe, to give each statement its own column. Then strip the statement text so only the answer remains, and rename the column with a short label such as Outcome BAS.

Trim and standardise free text. Remove leading spaces. Leave spelling in comments alone unless it blocks coding.

Decide what blanks mean. A skipped optional question is blank, not zero. The materials grid in the course example has a Did not use column; treat it as its own answer, never as a low score. That rule is what stops an unopened online portal from dragging down the materials average.

Counts and percentages

Build a summary sheet with one block per question. For a single choice question, list each answer label and use COUNTIF against the answer column, or build a pivot table with the question in rows and a count in values. Microsoft and Google both document pivot tables for exactly this job: summarising many rows by category.

Then choose the base. The percentage is the count of an answer divided by the number of people who answered that question, not the total number of responses. Suppose 58 students submitted, all answered the required outcome grid, and 21 rated preparing a BAS as not yet. That is 21 divided by 58, or 36%. If an optional question was answered by only 40, its percentages use 40.

Write the base beside every result: “36% (21 of 58)”. Readers then see immediately when a striking percentage rests on a small number.

For rating scales, map labels to numbers in a small lookup table, such as not yet as 1, with help as 2 and confidently as 3, and average with AVERAGEIF or a pivot table. Report the share choosing the top answer as well, because an average can hide a split group.

Cross tabs: one question against one segment

A cross tab answers “does this differ by group?”. Put the segment in pivot table columns, the answer in rows, and show values as a percentage of the column total. In the course example the segment is the class, never the trainer, so the coordinator can see whether Saturday morning students feel more confident on BAS than Thursday evening students without the survey naming a colleague.

Keep cross tabs to the questions that feed a decision. Crossing every question with every segment produces hundreds of small tables and a few differences that are pure chance. Survey researchers such as those at Pew Research Center publish their methods partly because the number of comparisons and the size of each group decide how much a difference can be trusted.

Two rules keep cross tabs honest:

The employee pulse survey builds the first rule into the form itself: its team question says a team under five responses is never reported alone.

Open answers

Open comments are where the reasons live, and they are the easiest part to misreport. Work in three passes.

  1. Read every comment once, without tagging.
  2. Write five to eight themes that cover most of what you read, plus Other.
  3. Read again, tag each comment with one or more themes, and count tags with a pivot table.

Quote sparingly and only where the comment cannot identify its writer. The course example asks for “one thing to change before next term” as a required question, which gives the coordinator one actionable sentence per student rather than a page of general feelings.

For a score followed by a reason, as in the customer feedback survey, tag the reasons separately for high and low scores. The themes behind a 9 and the themes behind a 3 are rarely the same list.

The steps in one table

The table at the end of this article lists the ten steps from export to report, with the formula or method for each and the mistake that most often creeps in at that step. Keep it beside the workbook the first time you analyse a survey, and note any step you skipped in the report itself.

Common mistakes

Dividing by the wrong base. Using total responses for an optional question makes every answer look rarer than it is.

Averaging labels that are not a scale. “Did not use” is not a 0.

Over reading small groups. A difference between a group of six and a group of nine is usually noise.

Mixing survey versions. If a question changed halfway through collection, analyse the two periods separately.

Reporting everything. Lead with the three findings that change a decision. The rest belongs in an appendix. For the questions themselves, the guide on how to write survey questions shows how wording choices made at the start make this analysis easier, and the note on margin of error explains why small samples need wide caution.

For NPS, the NPS survey example sets out the calculation from its own responses table.

Build it

The CSV export from a form here writes one column per input field, with Submitted At as the first column, and it pages through every response rather than only the page on screen. Composite fields stay in one column: a rating grid is written as each statement and its answer separated by pipes, an address as its parts joined by commas, and a table as a JSON array of the filled rows. Choice fields are written as their option labels, not stored values, and dates use the field’s own format. Partial responses are not stored, so every row is a submitted response.

The page on exporting form responses to CSV shows what each field type looks like in the file, and the tutorial on viewing, exporting and managing responses covers the responses table and the export button.

Survey analysis in a spreadsheet: each step, the method or formula that does it, and what to watch for.
StepMethod or formulaWatch for
ExportDownload every response as CSV and open it in a new workbookKeep the raw export untouched on its own sheet
CleanRemove test responses by date, trim spaces, fix obvious typos in free textNever edit an answer to make it fit a category
Split joined columnsSplit rating grid and multiple choice columns on their separator, one column per statementCheck the separator in the file before splitting
CountCOUNTIF on each answer label, or a pivot table with the question in rows and a count of Submitted At in valuesCount labels exactly as they appear in the file
PercentagesCount of an answer divided by the number who answered that questionDo not divide by total responses when the question was optional
Convert scalesMap labels to numbers in a lookup table, then averageTreat Did not use or Not applicable as blank, not zero
Cross tabPivot table with the segment in columns and the answer in rows, shown as a percentage of column totalHide or merge any segment with too few responses
Open answersRead all, draft 5 to 8 themes, tag each comment, count the tagsAllow one comment to carry more than one theme
TrendGroup Submitted At by week or month and chart the counts or averagesOnly compare periods that asked identical questions
ReportLead with the three findings that change a decision, each with its base numberAlways show how many people each percentage is based on

A finished example

When one grid mixes the trainer, the slides and the assessment, a bad textbook sinks a good teacher. This evaluation splits the three, asks the workload question numerically, and keeps free text to the two questions a coordinator can act on before the next intake.

Read the course evaluation form that separates teaching from materials

Questions people ask

Should I use Excel or Google Sheets?

Either works for a survey of a few thousand responses. Both import CSV files, both have pivot tables and both handle COUNTIF and text splitting. Choose the one the people who will read the analysis already use, so they can open the workbook and check a figure themselves. Keep the raw export on its own sheet in either tool.

How do I handle a question people could skip?

Use the number who answered that question as the base, not the total number of responses. If 80 people submitted and 52 answered an optional question, a finding that 13 chose one option is 25%, not 16%. State the base beside every percentage so readers can see when a result rests on a smaller group.

Can I average a five point rating scale?

You can, as long as the labels are evenly spaced and you convert every label the same way. Many analysts report the share choosing the top two options alongside the average, because a mean of 3.8 hides whether people are split or all lukewarm. Leave out answers such as Did not use, which are not points on the scale.

How many responses do I need before splitting by segment?

Enough that one person changing an answer does not swing the result. A common working rule is not to report a group with fewer than five responses, and to treat groups under about thirty as directional only. For anonymous staff surveys, the smallest reported group should also be large enough that nobody can be identified.

What is the quickest way to code open answers?

Read every comment once without tagging. Write five to eight themes that cover most of them, then read again and tag each comment, adding an Other theme for the rest. Count the tags with a pivot table. If Other grows past about a tenth of comments, split it into a new theme and retag.

How do I calculate a Net Promoter Score from the export?

Count scores of 9 and 10 as promoters and 0 to 6 as detractors, divide each count by the number who answered, and subtract the detractor percentage from the promoter percentage. The NPS survey example works it through: 54 promoters and 30 detractors from 120 responses is 45% minus 25%, a score of 20.

Written by

Nuwan Madhusanka · Co-founder

Works across the builders and the export paths: how a form becomes a PDF, how a flyer canvas becomes a print file, and how a signed document carries its audit trail.

LinkedIn profile

Sources

Written and checked by the OneCraft team. Last checked .

Make your own form

Describe what you need and the generator writes and designs it, then you edit anything you like.

See what it can make

Read next

For the steps inside the builder, read the guideon this topic.