Here's an example of what I can do currently with this dataset and CTABLES. Syntax:
CTABLES /TABLE QN105BA[c] + QN105BB[c] + QN105BC[c] + QN105BD[c]
/CLABELS ROWLABELS=OPPOSITE.Output:
Custom Tables
╭──────────────────────────────────────────────────────────────┬───────────┬────────┬───────────┬─────────────┬──────────╮
│ │ Almost │ Very │ Somewhat │ Somewhat │ Very │
│ │ certain │ likely │ likely │ unlikely │ unlikely │
│ ├───────────┼────────┼───────────┼─────────────┼──────────┤
│ │ Count │ Count │ Count │ Count │ Count │
├──────────────────────────────────────────────────────────────┼───────────┼────────┼───────────┼─────────────┼──────────┤
│105b. How likely is it that drivers who have had too much to │ 700│ 1502│ 2763│ 1307│ 609│
│drink to drive safely will A. Get stopped by the police? │ │ │ │ │ │
│105b. How likely is it that drivers who have had too much to │ 1100│ 2819│ 2417│ 430│ 140│
│drink to drive safely will B. Have an accident? │ │ │ │ │ │
│105b. How likely is it that drivers who have had too much to │ 1149│ 2037│ 2032│ 994│ 622│
│drink to drive safely will C. Be convicted for drunk driving? │ │ │ │ │ │
│105b. How likely is it that drivers who have had too much to │ 1101│ 1834│ 2307│ 1095│ 549│
│drink to drive safely will D. Be arrested for drunk driving? │ │ │ │ │ │
╰──────────────────────────────────────────────────────────────┴───────────┴────────┴───────────┴─────────────┴──────────╯
So, progress!