omiyu1188

Power BI メインで色々書いていきます。

【Microsoft Forms × Power BI】社内勉強会のアンケートを取って可視化する

目次

概要

今回は「社内勉強会後のアンケート」 を想定して、
Microsoft Forms で取ったアンケートの結果を Power BI で可視化してみます。

方法は複数あるのですが、今回は一番早い(と思われる)方法で行います。

事前準備

今回は1つのアンケートを毎週の勉強会で使い回す運用を想定して進めていきます。
そのため、勉強会の日程やその回の内容は別ファイルで管理します。

以下のようなデータを用意して予めレポートに読み込んでおきます。(テーブル名:勉強会スケジュール)

1. アンケート作成

今回は SharePoint から Microsoft Forms を立ち上げてフォームを作ります。
SharePoint を開いて、「ドキュメント」→「+新規」→「Excel 用 Forms」を選択します。

アンケート名を入力して「作成」を選択します。

すると Microsoft Forms が開くので「+新規追加」を押してアンケートを作成していきます。

今回はこんな感じで作りました。↓

アンケートの作成ができたので勉強会参加者に回答してもらいましょう。
画面右上の「回答を収集」からフォームの URL を取得して参加者に共有します。

アンケートに回答してもらったら結果を確認しましょう。
SharePoint に戻って先程作成した xlsx ファイルをデスクトップアプリで開きます。

沢山の回答が集まりました。

2. データ読み込み

Power BI から回答データに接続します。
Power BI Desktop を開き、「データを取得」→「Web」を選択します。

URL の入力を求められます。

先程の xlsx ファイルに戻り、「ファイル」→「情報」→「パスのコピー」で URL を取得します。

Power BI Desktop に戻ってコピーした URL を貼り付け、

"?"以下を消します。

読み込むテーブルを選択して「データの変換」を選択します。

ここから、Power Query エディターでデータの前処理を行います。

まずは、事前準備で用意した「勉強会スケジュールデータ」と紐づけるために、日付列を作成します。
Completion time 列を選択して「列の追加」→「日付」→「日付のみ」を選択します。

Completion time 列から日付列が作成されたので「勉強会スケジュールデータ」との紐づけを行います。

「クエリのマージ」を選択します。

「アンケート結果」の日付列と「勉強会スケジュール」の日付列を選択して左外部結合を行います。

ID列(各勉強会の識別ID)を展開します。

列名が分かりにくいので「ID.1」→「勉強会_ID」と書き換えます。
これを↓

こう↓

次に、下図赤枠の回答結果を「1」~「5」の数値データに変換します。

「内容は理解できた」~「業務に反映できそう」の5列を選択し、「値の置換」をクリックします。

「まったくそう思わない」を「1」に置換します。

同様に、「あまりそう思わない」を「2」、「どちらともいえない」を「3」、「ややそう思う」を「4」、「とてもそう思う」を「5」に置換します。
(リストで一括置換する方法もありますが今回は割愛)

「1」~「5」に置換できたら、データ型を「テキスト」→「整数」に変換します。

列名が長いものは短く修正します。

これでデータの前処理が終わりました。
変更を適用して Power Query エディターを閉じます。

モデルビューで2テーブル間にリレーションシップを作成します。

3-1. タイトル / スライサーの作成

以下の DAX 式で「勉強会スケジュール」テーブルに新しい列を作成します。

タイトル = "第" & '勉強会スケジュール'[ID] & "回:" & '勉強会スケジュール'[テーマ] & "(" & MAX('勉強会スケジュール'[日付]) & ")"

キャンバスにスライサーを追加して、作成した「タイトル」列をフィールドに使用します。
これでページのタイトル兼スライサーの作成ができました。

3-2. 総合満足度、回答者数の可視化

以下のようにメジャーを2つ作成します。

総合満足度 = AVERAGE('アンケート結果'[内容に満足いただけましたか?])
回答者数 = COUNTROWS('アンケート結果')

キャンバスにカードを2つ追加して、作成したメジャーを使用して総合満足度、回答者数を可視化します。

3-3. レーダーチャートの作成

今回は「Radar Chart by MAQ Software」というカスタムビジュアルを使ってレーダーチャートを作成します。

詳細:https://appsource.microsoft.com/ja-jp/product/power-bi-visuals/wa200001561?tab=overview

5つの質問の回答それぞれに対して平均を計算します。
以下のように5つのメジャーを作成します。

内容は理解できた_AVG = AVERAGE('アンケート結果'[内容は理解できた])
興味深い内容だった_AVG = AVERAGE('アンケート結果'[興味深い内容だった])
進行はスムーズだった_AVG = AVERAGE('アンケート結果'[進行はスムーズだった])
勉強になった_AVG = AVERAGE('アンケート結果'[勉強になった])
業務に反映できそう_AVG = AVERAGE('アンケート結果'[業務に反映できそう])

キャンバスに Radar Chart by MAQ Software を追加して Category に「勉強会スケジュール」の ID 列、Values に上記5つのメジャーを使用します。

3-4. 感想の一覧表示

キャンバスにテーブルを追加し「名前」と「感想」を表示します。

3-5. 今後開催してほしいテーマの可視化

以下のメジャーを追加します。

今後開催してほしいテーマ_CNT = COUNT('アンケート結果'[今後開催してほしいテーマ])

円グラフをキャンバスに追加して、凡例に「今後開催してほしいテーマ」、値に上記のメジャーを設定します。

これでレポートの完成です。

参考

www.youtube.com