【Forms × Power BI で始めるアンケート分析】レポート作成編

# はじめに
この記事は株式会社ナレッジコミュニケーションが運営する [クラウド AI by ナレコム Advent Calendar 2023](https://qiita.com/advent-calendar/2023/knowcom-cloudai) の17日目にあたる記事になります！

※[【Forms × Power BI で始めるアンケート分析】アンケート作成編](https://qiita.com/omiyu1188/items/9b80e90119cf025e85d8) の続きの記事となります。

以下のレポートを作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/173922a7-a3e8-1840-13e6-08eaf55eac38.png)

# 全体の流れ
1. アンケートの作成（前回）
2. 回答の確認（前回）
3. 回答データのインポート
4. データモデル作成
5. レポート作成

# 3. 回答データのインポート

「F23_週次アンケート.xlsx」をアプリで開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/0e2c2331-033e-4b19-1c2a-c57db69ecc60.png)

「ファイル」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/b5590af0-bec3-8866-35e8-d938b35a8597.png)

「情報」→「パスのコピー」で URL を取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/b560a872-d7d6-691f-906b-331bf51e7b17.png)

Power BI Desktop を開いて、「データを取得」→「Web」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/99f91a6a-2359-c5b2-10f8-bf6857f1a534.png)

コピーした URL を貼り付けて、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/e23b4520-dbe3-b2de-c498-96b21c97d973.png)

URL の "?" 以降を削除して「OK」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/545c15ae-9a87-fce5-ab3a-ebd2d7d52720.png)

回答データが記録されているテーブルを選択して「データの変換」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/7139a7ac-1ed7-060b-50d3-097816e3d75f.png)

Power Query エディターが起動されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/d6e58087-0d0e-e370-ce39-ed35fd70cdcf.png)

# 4. データモデル作成

## 4-1. Power Query エディター

まずはクエリ名を適切な名称に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/f067179f-68c8-16ae-e397-a77cc88b4a6a.png)

次に、レポートで不要な列を削除します。
「開始時刻」と「最終変更時刻」を選択して右クリック → 「列の削除」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/c465e9f6-633d-672b-b3e8-4e8a673f9bff.png)

また、「完了時刻」にはアンケートに回答した日付と時刻が格納されていますが、
今回のレポートでは時刻部分は使用しないので、日付部分のみ抽出します。
「完了時刻」を選択して「変換」→「日付」→「日付のみ」の順でクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/97a722dc-b8d9-7951-0353-5baed5e670c3.png)

いくつか列名が長すぎるものがあるので編集していきます。
ダブルクリックで列名編集モードになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/6424f507-dc90-552d-dcda-a1f57f374eca.png)

キャプチャのように変更しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/76bb4e6a-af56-ed18-6a26-8306bdf103c7.png)

変更を適用して Power Query エディターを閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/f48ec42e-9f6b-5ffb-de93-567f0f2dd77e.png)

## 4-2. リレーションシップ
「新しいテーブル」→ 以下を入力してカレンダーテーブルを作成します。

```
カレンダー = 
VAR StartDate = "2022/12/01"
VAR Today = UTCTODAY() + 9/24
VAR EndDate = Today
VAR ThisFY = IF(MONTH(Today) > 3, YEAR(Today), YEAR(Today) - 1)
VAR BaseCalendar = CALENDAR (StartDate,EndDate)
RETURN

ADDCOLUMNS(
    BaseCalendar,
    "年", FORMAT([Date], "yyyy年"),
    "月", FORMAT([Date], "MM月"),
    "週", FORMAT(WEEKNUM([Date], 2) - WEEKNUM((EOMONTH([Date], -1) + 1), 2) + 1, "0週")
)
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/26fbd70f-d97b-b3a7-5b44-489a484b354f.png)

作成したテーブルを日付テーブルとしてマークします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/f67b30df-ab3b-6dfb-7c72-ace21e15aa60.png)

回答データとカレンダーテーブル間のリレーションシップを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/23d9d753-313b-7345-b207-e3b6a77b95f1.png)

これでデータの準備はおわりです。
# 5. レポート作成

## 5-1. 折れ線グラフ
まずはこちらの折れ線グラフから作成します。
週ごとの回答数、自己満足度の平均値、チームへの満足度の平均値を表しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/1475d1a6-eee9-d348-138e-589ecb5937b9.png)

以下の式で3つのメジャーを作成します。

```
回答数 = COUNTROWS('週次アンケート')
```

```
自己満足度_平均 = AVERAGE('週次アンケート'[自己満足度])
```

```
チームへの満足度_平均 = AVERAGE('週次アンケート'[チームへの満足度])
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/699124d5-a4fd-9ce0-ed62-37f11a491969.png)

折れ線グラフを追加して以下のように設定します。
- X 軸：「月」、「週」
- Y 軸：「自己満足度_平均」、「チームへの満足度_平均」
- 第 2 Y 軸：「回答数」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/c56b4d22-e487-5e16-9e13-094c04dfeac5.png)

自己満足度平均とチームへの満足度平均の目安が分かるように Y 軸の定数線を追加します。
今回は 4 点としたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/16cfe082-75cf-8c8f-a263-cfd99ec2e1b5.png)

書式設定で見た目を調整します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/369e6ee4-8871-0749-653f-e9d83e159915.png)

## 5-2. カード
次に以下のカードを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/d633fa6c-495c-1f13-7e87-cb9af7f48e16.png)


カードをキャンバスに3つ追加して、それぞれのフィールドに「回答数」、「自己満足度_平均」、「チームへの満足度_平均」をセットします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/6f946b5c-1880-8e04-054b-30e2e41f924d.png)

値の色を折れ線グラフで使った色に合わせます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/266ecd0b-e0c2-a43d-9009-9a2654fb2bb0.png)

## 5-3. ドーナツグラフ
次に、「困りごとはあるか」に対する回答状況をドーナツグラフで可視化します。
ドーナツグラフをキャンバスに追加して以下のように設定します。

- 凡例：困りごと
- 値：回答数

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/10f6f3d3-9911-2ea2-ffae-1fb9a0a69232.png)

同じ手順で「自身が週初めに設定した目標と比較して、実際に達成できた成果はどの程度ですか？」に対する回答状況を可視化します。

- 凡例：達成率
- 値：回答数

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/3dd2866e-0c09-1859-630f-a0e0eebe9476.png)

最後に日付範囲スライサーを作成して完成です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655635/575f3341-cede-697f-4527-b8b3f20a6637.png)

# おわりに
ナレッジコミュニケーションでは「[Musubite](https://musubite-job.com/)」というエンジニア同士のカジュアルトークサービスを利用しています！この記事にあるような生成 AI 技術を使ったプロジェクトに携わるメンバーと直接話せるサービスですので興味がある方は是非利用を検討してください！

https://recruiting.musubite-job.com/features/company/knowledge-communication