Quantcast
Channel: なんでもエクセル(Nandemo Excel)
Viewing all articles
Browse latest Browse all 60

Power Query:1セルに入力したアンケート結果から集計する

$
0
0

Excelを利用している人の中には、「入力で楽して、計算で困る」人が結構な数います。月ごとにシートを分けて、Excel方眼紙で表を作っちゃうような人はその部類に入るでしょう。

これは、とある人が入力したアンケート結果の記録です(実話)。

何かというと「問1は『1』、問2は『1』、問3は『3』、……問15は『3』」を1セルに入力したものです。1セルずつ分けて入力しておけばなんてことないのに、Enterキーを押すのを面倒がって、文字列の状態で1セルに入力してしまったわけです。計算できるなら別にそれでもいいんですが……

アンケートなんて後で集計すると分かっているのだから、「計算できるように入力する」のが鉄則だと思うんですが、後先考えずに入力するだけして「さて、集計どうやってやろう」となってしまったようです。

愚痴っても仕方がないので、ここから集計する方法を考えました。数式でやってもいいんですが、データ量が多かったのもあって(シートも分かれていました……)、今回はクエリでやってしまうことにしました。データ範囲のセル範囲は「アンケート結果」として名前定義しています。


[データ]→ [テーブルまたは範囲から]

これでクエリが作成されます。右ペインの「クエリの設定」の適用したステップ欄に、「変更された型」という、データ型を指定するステップが勝手に追加されてしまうので、これは削除してしまいましょう(もしくはデータ型をテキストに変えておきましょう)。でないと値が数値化されてしまいます。

次はカスタム列を挿入します。


[列の追加]→[カスタム列] 新しい列名:カスタム カスタム列の式:= Text.ToList([Column1]) →[OK]

これで、データを1文字ずつのリストに切り離すことができました。Text.ToList関数は文字列を分解する時によく使います。

learn.microsoft.com

後はカスタム列だけにしてリストを展開すればいいです。


カスタム列を右クリック[他の列の削除]

カスタム列の右横のアイコンをクリックし[新しい行に展開する]

これで入力したセルが複数行あっても、展開した時点で1列に並ぶことになります。

ここまでくれば通常運行。データ型を整数にしてからグループ化で集計するだけ。


カスタム列の左のアイコンをクリックして[整数]を選択

カスタム列を右クリックして[グループ化]

新しい列名:カウント 操作:行数のカウント →[OK]

これで完成です。「閉じて次に読み込む」で好きなところに読み込んでしまいましょう。

入力し終わってから集計について悩みだす人って、世の中からいなくならないでしょうかね……


Viewing all articles
Browse latest Browse all 60

Trending Articles