調査報告書のクロス集計を加工し、関連を確かめる方法

ピボットテーブルのすゝめ

データを分析するときには、「Googleスプレッドシート」の[挿入]メニューにある[ピボットテーブル]を使いましょう。
このことを、[挿入]―[ピボットテーブル]を使いましょう、と書きます。

はじめに

x年のデータを表計算ソフトで読み込んで、投票率を集計してみましょう。
[挿入]―[ピボットテーブル]
「行」に「追加」で「(投票参加の変数名)」
「値」に「追加」で「(ID)」とし、「集計」から「COUNT」を選択
注意:「値」の「集計」が「SUM」だと「ID」の合計値が表示されます

投票率は期日前投票、不在者投票、白票を含みます。この調査では、投票参加については以下の項目に分けてたずねています。

  1. 当日投票した
  2. 期日前投票をした
  3. 不在者投票をした
  4. 白票を投票した
  5. 投票しなかった
  6. 忘れた・覚えていない

したがって、下のいずれかの作業が必要ですね。

  • 「投票参加」の項目を集計し、合計する
  • 「投票参加」の項目をまとめてから集計する

投票参加の項目をまとめる場合
投票参加の列の右側(など)に列を挿入し、「投票参加の有無」と名付けた列を作るとよいでしょう。
その列に、もともとの「投票参加」の値に応じて、「当日投票」「期日前投票」「不在者投票」「白票」をすべて同じ一つの値に、「投票しなかった」を一つの値に、「忘れた・覚えていない」を一つの値にしてみましょう。
このような場合にはifsという関数を使うと便利です。
参考:ifs関数(https://support.google.com/docs/table/25273?hl=ja#query=ifs
仮に投票参加の列がBで「当日投票」が1、「期日前投票」が2、「不在者投票」が3、「白票」が4、「投票しなかった」が5、「忘れた・覚えていない」が6だったとしましょう。新しい「投票参加の有無」は「当日、期日前、不在者、白票」を1、「投票しなかった」を0、「忘れた・覚えていない」を888とします。
=IFS(B2=1,1,B2=2,1,B2=3,1,B2=4,1,B2=5,0,B2=6,888,TRUE,999)
最後の「TRUE,999」というのは、どれにも当てはまらなかった場合(たとえば空欄など)のときに999とする、という意味です。
1の代わりに”投票”、0の代わりに”棄権”、などと文字にしても構いません。文字を指定する場合は”(ダブルコーテーション)で囲みましょう。

4以下を1、5を0、6を888ですから以下の通りに書けばいいのではないか、と思ったあなたはおしい!
=IFS(B2<=4,1,B2=5,0,D2=6,888,TRUE,999)
と書くと、空欄の場合に「4より小さい」と判定されて、1が入ります。
最初に空欄かどうかの判定をしておきましょう。
=IFS(ISBLANK(B2),999,B2<=4,1,B2=5,0,D2=6,888,TRUE,999)

x年の選挙では、年齢によって投票率に差があるでしょうか?
年齢は実際の年齢を答えてもらっているので、10歳区切りにしてから集計してみましょう。
参考:ifs関数(https://support.google.com/docs/table/25273?hl=ja#query=ifs)
仮に実際の年齢の入った列をD、1行目に変数名が入っている(2行目からデータが始まっている)とすると、
E列に新しい列を作って「年齢(10)」などとし、E2には
=IFS(D2>=80,8,D2>=70,7,D2>=60,6,D2>=50,5,D2>=40,4,D2>=30,3,D2>=20,2,D2>=10,1,TRUE,999)
としてみましょう。これは、「D2(E2の自分のすぐ左隣)が80以上ならば8、80以上でなく70以上なら7、そうでなければ6、そうでなければ5…」という意味です。
「x以上の場合は…」という判定方法なので、空欄が80と判定される危険はありませんから、ISBLANKという判定は書いていません。

[挿入]―[ピボットテーブル]
「列」に「追加」で「(投票参加の有無の変数名)」
「行」に「追加」で「(年齢10)」
「値」に「追加」で「(ID)」とし、「集計」から「COUNT」を選択
してみましょう。
これでも見にくいですね。
直感的に判断できるのは頑張っても5行x5列くらいが限界ではないでしょうか。
少し分け方を変えてみましょう。
現在、若い人たち(「若年層」)の投票率が他の世代に比べて低いことが問題になっています(その結果、選挙に行く年配の人たちの声ばかりが取り上げられているという意味で「シルバー民主主義」と問題視する声もあります)。
ここで「若年層」と呼ばれているのは30歳代まで(!)なので、「39歳以下」40から64歳(「生産年齢人口」が64歳までです)、「65歳以上」の3つに分けてみましょう。
手順
「年齢(10)」の横の列(違ってもよい)に列を挿入し「年齢(3区分)」とする。
=IFS(D2>=65,3,D2>=40,2,D2>=18,1)

さあ、この「年齢(3区分)」と「投票参加の有無」とを組み合わせて見てみましょう。
それぞれの年齢区分の人口が違うのでわかりにくいですね。
今知りたいのは、年齢区分によって投票率に差があるのか、ですから、それぞれの年齢区分ごとに投票率を計算してみましょう。
投票率=投票した人の数/すべての数(今は年齢区分の該当者数)
ですね。
さて、どうでしたか?