Survey analysis

How to Cross-Tabulate Select-All-That-Apply Survey Questions

Define or reshape it as a multiple-response set: make every option a binary outcome, cross those options with the grouping variable, and report each option as percent of cases in its banner group. Do not treat combined answer strings as exclusive categories or run one omnibus chi-square across overlapping option rows.

Published by crosstabs.com · Named statistical review pending · Last updated

Run this on your own data — free, no signup

Upload a CSV or XLSX. Everything runs in your browser; your file never leaves your device.

Open the workspace →

Structure the question as option-level binary data

A select-all-that-apply question is not one ordinary categorical variable. It is a set of related binary outcomes. Survey exports commonly store it as numbered option columns such as Q5_1, Q5_2, and Q5_3, or as a comma- or semicolon-delimited list in one cell. A correct table expands either encoding to one row per option while retaining one underlying respondent record.

Crosstabs detects conservative split-column and delimited patterns during CSV or XLSX import. Verify the detected labels and base before reporting. If the question is not detected, reshape it to consistently coded option columns instead of analysing each answer combination as a category.

Choose percent of cases or percent of responses deliberately

Percent of cases divides each option count by the included respondents in that banner group. It answers, “What share of this group selected this option?” and can sum above 100%. Percent of responses divides by all recorded selections and answers a different question: “What share of selections went to this option?”

Crosstabs reports percent of cases because respondent incidence is usually the actionable survey quantity. IBM SPSS likewise distinguishes case- and response-based percentages for multiple response tables. Always name the denominator in the title, footnote, or column header.

Worked example

Worked example

Two independent banner groups, 100 included respondents in each group
Option selectedGroup AGroup BInterpretation
Email70%40%70 and 40 respondents selected Email
Phone50%60%50 and 60 respondents selected Phone
Sum of option percentages120%100%Valid: respondents can appear in both rows

How to interpret it

Rule of thumb

Read a cell as “X% of included respondents in this banner group selected this option.” A total above 100% is expected when people can select multiple options; it is not a rounding error.

Keep skipped cases separate from explicit none selections

Missingness is part of the estimand. In a split-column export, an all-zero answered case remains in the base with no option selected. A row blank on every option is treated as skipped and excluded from that question's base. For a delimited export, a blank cell is skipped. Preserve an explicit “None of these” option rather than recoding missing records as None.

Report the valid respondent base by banner group and disclose any filtering or weight exclusions. Different missing rules can change every percentage even when the option counts stay fixed.

Use option-level tests with the correct multiplicity boundary

One omnibus Pearson chi-square across the option rows is not valid because respondents can contribute to several rows. Crosstabs instead compares one option's binary selection rate across independent banner columns using pooled two-proportion z-tests. Columns with bases below 30 are excluded.

Within each option, its pairwise column comparisons are Bonferroni-corrected. That correction does not adjust across every option in the question, across multiple tables, or across analyst-selected cuts. Treat the full analysis as a larger multiplicity family when the research decision requires it. An untyped weight is blocked. When an approved complex design is declared, Crosstabs instead uses respondent-case-based Taylor or replicate-weight uncertainty and one design-adjusted selected/not-selected test per option. Response-denominator percentages remain descriptive, ordinary letters are hidden, and no omnibus test is formed across overlapping option rows.

Run it in the browser workspace

Upload a CSV or XLSX to the Crosstabs workspace. Detected questions appear under Multi-select questions; use one as the row dimension and choose an independent banner variable for columns. The table shows case-based percentages, bases, warnings, weights, and option-level significance letters. Source rows remain in the browser.

Frequently asked questions

Why do my multi-select percentages sum to more than 100%?
Percent-of-cases rows use respondents as the denominator. One respondent can select several options, so the option percentages are not mutually exclusive and their sum can exceed 100%. A 180% sum means 1.8 recorded selections per included respondent on average.
Can I run a chi-square test on a select-all-that-apply question?
Do not run one omnibus independence chi-square across the option rows: the same respondent can appear in several rows, violating the mutually exclusive cell structure. Crosstabs instead treats each option as a separate binary outcome and compares that option across independent banner groups. Its Bonferroni adjustment covers column pairs within that option, not the full family across every option in the question.
My export has the answers comma-separated in one column. Can it be analyzed?
Yes when the delimiter and repeated option vocabulary are detected. Crosstabs recognizes comma- or semicolon-delimited answers and numbered split columns such as Q5_1, Q5_2, and Q5_3. Detection is intentionally conservative; if a set is not shown, reshape it to one consistently coded option column per choice before analysis.
How are skipped questions and explicit 'none' answers handled?
For split option columns, a row blank on every option is treated as skipped and excluded from that question's case base. An answered all-zero row remains in the base with zero selected options. Preserve an explicit None option separately when it has substantive meaning; do not turn skipped records into None selections.
Can I use survey weights and significance letters?
An untyped numeric weight is rejected before option counts or tests are returned. With an approved survey design, Crosstabs estimates each option from respondent case bases with Taylor or replicate-weight variance and reports a separate selected-versus-not-selected Rao–Scott test with an adjusted-Wald alternative. Ordinary significance letters are suppressed, and no omnibus test is reported across overlapping option rows.

References & further reading

Try it on your own data — free, no signup

Upload a CSV or XLSX. Everything runs in your browser; your file never leaves your device.

Open the workspace →

Related calculators

← All calculators & guides