【Microsoft Forms × Power BI】社内勉強会のアンケートを取って可視化する
目次
- 概要
- 事前準備
- 1. アンケート作成
- 2. データ読み込み
- 3-1. タイトル / スライサーの作成
- 3-2. 総合満足度、回答者数の可視化
- 3-3. レーダーチャートの作成
- 3-4. 感想の一覧表示
- 3-5. 今後開催してほしいテーマの可視化
- 参考
概要
今回は「社内勉強会後のアンケート」 を想定して、
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('アンケート結果'[今後開催してほしいテーマ])
円グラフをキャンバスに追加して、凡例に「今後開催してほしいテーマ」、値に上記のメジャーを設定します。
これでレポートの完成です。