Teams でアンケート (Forms) を作って結果を Power BI で可視化・共有する (3) 複数回答の分析

この記事は [Teams でアンケート (Forms) を作って結果を Power BI で可視化・共有する (2) キーフレーズ抽出](https://qiita.com/ayumito/items/97efc83cae847c2d8558) の続きです。
前回の記事では、Forms のアンケート結果が Excel に格納される形式と、回答文からキーフレーズを抽出する方法を紹介しました。今回の記事を書くにあたり、**キーフレーズの可視化をするところまで前回の記事に入れておけば良かったなと思ったので、追記しました。前回の記事も見直していただければと思います。** 今回は複数回答のデータを加工していきます。

# サンプル アンケートの内容
こんな Forms アンケートを作成していました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/c704a0ac-79d4-9ee6-81e7-c9bf82f59388.png)
1問目で「Yes」を選択すると、2,3問目に回答できます。今回はこの2問目の選択式の複数回答を処理していきます。

# 複数回答を分割する
Excel には「使用しているものを教えてください (複数回答可)」という列に、選択した回答がセミコロン「;」区切りで入っています。Power Query エディターでは下図のように見えます。(2問目なのに3問目の右側にあるのは、後から Forms を編集したためです…)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/056be92d-3f06-049d-a0e3-85a609f16d2c.png)
この列を分割して、複数回答が行方向に現れるようにします。なぜそんなことをするのかというと、加工しないと各回答がそれぞれ何人いるのか集計しにくいからです。

1. キーフレーズ抽出の時と同様に、まずは Table1 を参照する別テーブルを作成します。
Power Query エディターの [クエリ] ペインで「Table1」を右クリックし、**[参照]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/f8213323-1c51-8446-91b5-ae495048cf08.png)
「Table1 (2)」が作成されるので、ダブルクリックして「Q2」という名前に変えます。

2. 「ID」列と複数回答列 (ここでは「使用しているものを教えてください (複数回答可)」という列) を選択し、どちらかの列の **列名の** 右クリックメニューから **[他の列の削除]** を選択します。
[他の列の削除] を使用することで、問がどれだけあってもこの操作だけでさばけます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/e41e4611-4f05-cda2-f71d-6e580fd8dbb0.png)

3. 複数回答の列名を右クリックし、**[列の分割]** → **[区切り記号による分割…]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/0fa095a5-3b4c-4ed0-e671-b36ed6d59a80.png)

4. 列の分割のダイアログが表示されるので、下図の通りに設定します。**[分割の方向]を「行」としているので、ID=1 の人が2つの選択肢を選んでいれば、3行 (セミコロンの数+1) に分割されます。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/dd7a291d-198e-1b5c-6675-81d75ee5f625.png)

5. 未回答の場合は「null」、複数回答の場合は最後の選択肢の後が「空白」として処理されるので、フィルターを使用してこれらの行データを削除します。列名右側の [▼] ボタンをクリックして、**「null」と「空白」のチェックを外します。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/293f2183-ad11-4feb-e85b-0daf34abfba6.png)
[ホーム] → [閉じて適用] をクリックして、Power Query エディターを閉じます。

:::note
複数回答の問が複数ある場合には、各問ごとに 1～5 の操作を行います。
:::

# それぞれの回答がフィルター条件になるよう、リレーションを編集する
この操作は**各リレーションシップで実施**します。
1. Power BI Desktop で [モデル] ビューを開き、Table1 につながるリレーションシップをクリックして編集します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/bfac37d1-973d-217a-6000-1e02dfda3c78.png)

2. リレーションシップのプロパティで **[クロス フィルターの方向] を「双方向」に変更し、[変更の適用] をクリック**します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/cc7b5123-634c-2142-1ce6-4611f3a4b2e7.png)

# レポートを完成させる
3. [レポート] ビューに戻ります。前回の記事で作成済みのワードクラウドのサイズを調整して他のビジュアルを入れるスペースを作ります。Q2 の回答を可視化するために、[視覚化]ペインから「集合横棒グラフ」を追加します。[フィールド]ペインの「Q2」から質問文 (ここでは「使用しているものを教えてください (複数回答可)」) を Y 軸に、「ID」を X 軸に、それぞれドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/69fa55da-d813-cdc5-dd5b-9778317d00f2.png)


4. [ビジュアルの書式設定] で X 軸、Y 軸のタイトルをオフにしたりフォントサイズを変えたり、データラベルをオンにしたりします。ちなみに、**ビジュアルの書式設定で Y 軸の [最大領域の幅 (%)] を広げると、軸ラベルの幅を広げられます。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/b9f2e4c5-b0f3-54c0-6689-1b73e2cd0969.png)

5. キーフレーズだけでなく、回答文そのものを表示するために [視覚化] ペインから「テーブル」を追加し、[列] に「Table1」の Q3 の質問文を追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/205154df-bc5f-432d-1f18-f382d4f269c0.png)

6. Q1 の回答も載せたいので、ワードクラウドを左下 1/4 に表示するようにサイズを変更します。Q1 は Yes/No の2択の質問だったので、ドーナツグラフで表示してみます。「Table1」から [凡例] に Q1 の質問文を、[値] に「ID」をドラッグ＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/52c719d5-0c1c-d886-84ec-61a416a7e0bb.png)

7. ビジュアルの書式設定で [凡例] を非表示にしたり、ラベルの内容とフォントを変更したりしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/0cb8cd01-ef53-70ef-0253-cc97e63dbb86.png)

8. 図形の四角形を駆使して枠を作ったり、ビジュアルの書式設定でタイトルや色を変更したりすると、こんな感じにお化粧できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/fda70d23-79b3-141f-4b03-2f10e9c77586.png)

# レポートを操作してみる
グラフをクリックすると、そのデータだけに絞り込まれた状態に、他のビジュアルが連動します。UI 操作が直感的で、インタラクティブにデータが動いて、なんかかっこいい。だけじゃなく！「Power BI サービスを使ってると答えた人は、どんなところが気に入ってるのかな？」とか「好きなところに 無償 と答えた人は、具体的に何と書いていて、何を使ってるのかな？」といったように、**各問を連動させて分析できるのがポイントです。**
![プレゼンテーション1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/fce9f670-c187-065b-7e8e-b25c02b3a175.gif)

# Power BI サービスに発行し、スケジュール更新を設定
1. レポートを保存し、Power BI サービスに発行します。[ホーム] → [発行] をクリックします。Power BI Desktop でサインインしてない場合は、Power BI サービスのサインインが要求されます。発行可能なワークスペースの一覧が表示されるので、[選択] して発行します。**ワークスペースは Premium 機能が有効なものを選択することで、キーワード抽出を含むデータセットの更新が可能です。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/25500e86-47d6-101e-b197-02f6d4179123.png)

2. 発行に成功すると下図のようなダイアログが表示されるので、「✓ 成功しました!」のすぐ下の [Power BI で *レポート名* を開く] のリンクをクリックし、ブラウザで発行したレポートを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/d282b758-74ed-890c-59bf-b1287c27b757.png)

3. レポート上部の3点リーダー [･･･] メニューから [データセットの表示] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/9015d970-94b7-8b27-e52b-2e798ab9cfa3.png)

4. 画面上部の [更新] メニューから [更新のスケジュール設定] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/857ee6c2-12ed-f102-f92b-5f084e00cbe9.png)

5. [データ ソースの資格情報] を開き、[資格情報を編集] をクリックして、認証方法等を登録します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/7bbef2de-6dec-6500-37e0-050941ff9de8.png)

6. いずれも [認証方法] には「OAuth2」を、[このデータ ソースのプライバシー レベルの設定] には「Organizational」を選択し、サインインします。Microsoft 365 (Office 365/Power BI サービス) のアカウントで認証します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/1a21c556-ae7c-0fdc-30bc-0403df376efa.png)

7. [スケジュールされている更新] を開き、[データを最新の状態に保つ] のトグルを「オン」にします。更新の頻度 (毎日/毎週) を選択し、更新する時刻を追加します。各時 0 分か 30 分にスケジュールできます。**[適用]ボタンを忘れずにクリックします。これでアンケートの回答が追加されても、毎日新しい回答が自動で反映されます。**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/2cb99aa9-1781-6bb7-8c90-6d7dcdc200e5.png)

:::note
0/30 分以外の時刻に更新を実行したい場合には、REST API または PowerShell を使用します。
[REST API のリファレンス](https://learn.microsoft.com/ja-jp/rest/api/power-bi/datasets/refresh-dataset-in-group)
Power Automate の Power BI コネクタのアクションに「データセットの更新」があるので、GUI 派の方はこちらがおすすめです。
[Power BI コネクタのリファレンス](https://learn.microsoft.com/ja-jp/connectors/powerbi/#%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88%E3%82%92%E6%9B%B4%E6%96%B0%E3%81%99%E3%82%8B)
:::

全3回にわたってTeams でアンケート (Forms) を作って結果を Power BI で可視化・共有する方法をお届けしました。
行き当たりばったりに書いてしまったので、後から (1)(2) の記事を少し修正しています。

# おまけ
今回の記事を作るにあたり、PowerPoint で画面録画してアニメーション GIF ファイルを作れることを知りました。スライド ショーがアニメーション GIF になります。
1. 画面録画する (※ 音も収録されます)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/4ca6153f-3e80-60c3-7271-16728013f0a7.png)

1. アニメーション GIF にエクスポートする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/aad7434a-1143-49e6-2533-db152d243f8f.png)