AIにアンケートのクロス集計を頼むときは、まず件数表を作り、割合の分母を決めます。同じ「50%」でも、ある属性の半分なのか、ある回答を選んだ人の半分なのかで意味が変わります。
この記事では、架空の12人の回答から、件数、行割合、列割合、無回答の確認表を作ります。例は単一回答・未加重です。AIサービスへのアップロードや生成結果の精度を実測したものではありません。集計方法を確認するための説明用データです。
目次
集計する前に、1行の意味を決める
今回は「1行=1回答者」「行=利用経験」「列=満足度」とします。満足度は満足・普通・不満から一つを選び、空欄は無回答です。利用経験は全員に入力されています。
実データに重複IDがあっても、理由を確認せず削除しません。再回答、途中保存、複数回答の展開では処理が異なります。回答を一つに決める規則がなければ、集計前の確認事項として残します。
表は横にスクロールできます
| 回答者ID | 利用経験 | 満足度 |
|---|---|---|
| R01 | 初回 | 満足 |
| R02 | 初回 | 満足 |
| R03 | 初回 | 普通 |
| R04 | 初回 | 不満 |
| R05 | 初回 | 無回答 |
| R06 | 初回 | 無回答 |
| R07 | 継続 | 満足 |
| R08 | 継続 | 満足 |
| R09 | 継続 | 満足 |
| R10 | 継続 | 普通 |
| R11 | 継続 | 不満 |
| R12 | 継続 | 無回答 |
この表の「無回答」は説明用の表示です。保存用CSVでは満足度を空欄にしています。実務では空欄、空白だけのセル、「未回答」、回答拒否などを同じ扱いにするかも決めます。「不満」へ置き換えてはいけません。
個人情報を含む原本をそのままAIへ渡す必要はありません。目的に必要な属性と匿名の作業用IDに絞り、組織の利用条件に従います。
最初に件数と、除外した人数を合わせる
ここでは満足度の無回答を割合の分母から除きます。ただし、表から消した人数は別列に残します。
表は横にスクロールできます
| 利用経験 | 満足 | 普通 | 不満 | 有効回答n | 無回答n | 対象者n |
|---|---|---|---|---|---|---|
| 初回 | 2 | 1 | 1 | 4 | 2 | 6 |
| 継続 | 3 | 1 | 1 | 5 | 1 | 6 |
| 合計 | 5 | 2 | 2 | 9 | 3 | 12 |
初回は2+1+1=4、4+2=6です。全体も9+3=12になります。今回は対象外や利用経験の欠損がないため、この関係で照合できます。除外条件を追加したら、その人数も別に数え、同じ式へ無理に当てはめません。
件数表が合わない段階では、割合やグラフを作り直す前に、ID、対象条件、分類できない値を確認します。
行割合は、その利用経験の有効回答者を分母にする
「初回利用者のうち、満足と答えた割合」を知りたいなら、2÷4=50%です。初回の対象者6人を分母にした2÷6とは、答えている問いが異なります。
表は横にスクロールできます
| 利用経験 | 分母となる有効回答n | 満足の行割合 | 普通の行割合 | 不満の行割合 |
|---|---|---|---|---|
| 初回 | 4 | 50% | 25% | 25% |
| 継続 | 5 | 60% | 20% | 20% |
| 全体 | 9 | 55.6% | 22.2% | 22.2% |
全体の満足割合は5÷9で計算します。初回50%と継続60%の単純平均55%ではありません。有効回答の人数が違うためです。表示は小数第1位に丸めていますが、検算には丸め前の値を使います。
初回の無回答は対象者6人のうち2人、継続は6人のうち1人です。有効回答だけの満足割合を示す場合も、この無回答の違いを併記します。無回答者がどう答えたはずかは推測しません。
列割合は、その満足度を選んだ人を分母にする
「満足と答えた人のうち、初回利用者は何割か」なら、2÷5=40%です。行割合の50%と数値が違っても、計算ミスではありません。
表は横にスクロールできます
| 利用経験 | 満足者5人の内訳 | 普通回答者2人の内訳 | 不満回答者2人の内訳 |
|---|---|---|---|
| 初回 | 40% | 50% | 50% |
| 継続 | 60% | 50% | 50% |
この表は列ごとに100%です。行ごとの合計を100%へ直すと、別の集計になります。共有時には「列割合」と書くだけでなく、「満足者5人の内訳」のように分母の意味と人数を残してください。
AIには、出力表と検算を一緒に頼む
必要なのは見栄えのよい表だけでなく、各数字を元データへ戻せることです。次の依頼例では、欠損や重複を勝手に補正しないようにします。
入力のアンケートCSVから、利用経験×満足度を集計してください。
前提:1行1回答者、単一回答、未加重です。
最初にID重複、利用経験の欠損、想定外の満足度を報告してください。
処理規則がない値を削除・推測補完せず、確認事項へ分けてください。
満足度の空欄は無回答とし、割合の分母から除きます。
出力1:件数表。有効回答n、無回答n、対象者nを併記。
出力2:行割合。各行の有効回答者を分母にする。
出力3:列割合。各満足度の回答者を分母にする。
各表の分母を日本語で説明し、ゼロ分母は「算出不可」にしてください。
件数の合計と人数の対応を検算し、丸め前の値で割合を確認してください。
観察できる差と、調査だけでは分からない理由を分けてください。
入力:[利用が認められたCSV]
実データでは、無回答を独立した選択肢として見せる目的もあります。その場合は対象者を分母にする表を別に作り、今回の有効回答ベースの表と混ぜません。どちらを採るかをAIへ任せず、調査目的に合わせて指定します。
ツールの設定と、調査のルールを混同しない
pandasの公式資料では、crosstabは標準で件数表を作り、normalizeのindexは行、columnsは列を基準に割合へ変換する設定です。これは表計算の仕様で、無回答や再回答をどう扱うべきかを決める調査ルールではありません。pandas公式:crosstab(新しいタブで開く)
空欄の分類、対象者の抽出、重複の判断を先に済ませてから、選んだ分母で計算します。カテゴリの並びと、回答0件の選択肢を表示するかも指定してください。分母が0人の区分は0%とせず、算出不可として人数0を残します。
複数回答では、同じ人が複数の選択肢へ数えられます。回答者数を分母にした割合の合計が100%を超える場合があり、今回の単一回答の行合計検査は使えません。回答者ベースと選択件数ベースを分けます。ウェイト付き調査も別設計とし、加重割合を未加重の回答人数と混同しません。
差の説明には、人数と未確認事項を添える
この架空データでは、有効回答者の満足割合は初回50%、継続60%で、差は10パーセントポイントです。「10%増」とは書きません。どちらも人数が少なく、無回答の数も違います。
書けるのは「この架空例の有効回答では、継続の満足割合が初回より10ポイント高い」です。「継続利用で満足度が上がった」という因果や、母集団でも同じ差があるという結論にはできません。同じ人の前後比較でもありません。
受け渡す成果物には、対象条件、件数表、行割合、列割合、分母、無回答数、丸め規則を残します。グラフへ進む前に一つのセルを元のIDまで戻して確認してください。初回の満足2人はR01・R02です。この対応が取れれば、割合だけの表よりも修正箇所を確かめやすくなります。
参考資料
公式仕様の確認日:2026年10月20日。12人の回答と集計表は架空例です。集計の数値をローカルで検算しており、AIサービスの出力、実調査の品質、画面表示を検証したものではありません。
