AIでアンケートのクロス集計を作る方法|件数・分母・無回答を照合

架空の12人の回答から件数・行割合・列割合を照合。無回答の人数、分母、全体割合、ゼロ分母を分けてAIの集計を確認します。

AIものさし編集部

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
初回211426
継続311516
合計5229312

初回は2+1+1=4、4+2=6です。全体も9+3=12になります。今回は対象外や利用経験の欠損がないため、この関係で照合できます。除外条件を追加したら、その人数も別に数え、同じ式へ無理に当てはめません。

件数表が合わない段階では、割合やグラフを作り直す前に、ID、対象条件、分類できない値を確認します。

行割合は、その利用経験の有効回答者を分母にする

「初回利用者のうち、満足と答えた割合」を知りたいなら、2÷4=50%です。初回の対象者6人を分母にした2÷6とは、答えている問いが異なります。

表は横にスクロールできます

利用経験分母となる有効回答n満足の行割合普通の行割合不満の行割合
初回450%25%25%
継続560%20%20%
全体955.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サービスの出力、実調査の品質、画面表示を検証したものではありません。

次に読む・使う

この記事の次に必要な情報へ進めます。