[Power BI] Power Automate ビジュアルを使用して利用者の反応を "簡単に" 集めよう😀

# はじめに

https://youtu.be/QewkwWtJrKg

非常に興味深いYouTubeを見て感銘を受け、

それをもとに、気ままに勉強会#28 で登壇した内容を簡単にまとめてます。

https://kimamani.connpass.com/

# Power BI レポートへの反応をもらう

Power BI レポートを組織内で展開したときに、そのレポートに対してリアクションをもらいたいときありませんか？パッと思いつくのはFormsでアンケートを作成して、ユーザーに送信。ユーザーが答えた結果をまたPower BIで可視化して…みたいなシナリオでしょうか。Formsは簡単にアンケートを作成できるツールですが、Power BIレポートは組織内にいくつもあり、アンケートを作る方も答える方も全てに対して行うことは現実的には難しい…そんなときに使えるテクニックを紹介します！

# イイね！ボタンを作成してユーザーに押してもらう

レポートの雛形はこんな感じにつくります。実際のレポートでは、イイねボタンはもっと小さくてもいいでしょうね😁

iconは任意のものを使用してOKですが、Microsoftもiconを配布してくれているので、今回はこれを使用しています。

https://github.com/microsoft/fluentui-system-icons/tree/main/assets

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/22212a37-cdde-1bf7-e7f2-9ee88fecfab1.png)

レポートの雛形ができたら、今度はPower Automate ビジュアルにデータを渡すために必要なテーブルを作成していきます。
レポートの名前を渡すためにたった1行1列の簡単なテーブルを手動で作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/67728f0b-e892-4253-af28-bec582c92f19.png)

手動で作成したテーブルに、Measureを追加。

```dax
Up = 1
```

```dax
Down = -1
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/d657b4c8-4a17-e2ac-aed5-c8dd96b2933b.png)

ここまでできたら、Power Automateビジュアルをクリック😮

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/1acac656-94f4-4d56-2bbc-e8e40582ad83.png)

Power Automateビジュアルにわたす値をいれておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/a9acacd8-5597-4972-ce9c-3bb046b29817.png)

Power AutomateビジュアルはPower BI Desktop上でフローの作成をできます。フローの作成画面に入ったら、**Power BI からExcelテーブルを更新する**というTemplateがすぐに見つかるので、それを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/47edc65a-8e8e-24cd-d6f2-903c87480b35.png)

また、それとは別に、データを格納するためのExcelを作成し、OneDriveやSharePointなどに保存しておきます。
`UserName`や`Mail`はPower BIにログインしているユーザーのものを自動的に取得することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/6f750ae7-0877-cf7e-e7b0-8e7b3cca561b.png)

Excelが完成したら、フローを完成させていきます。先程Templateから選択したアクションを変更していきます。今回はExcelの行を**更新**ではなく、**追加**したいので、更新のアクションを削除して、追加のアクションを選択します。**表に行を追加**というドンピシャなアクションがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/6e333403-c21d-07cf-15b7-2eb89be9dcc8.png)

追加したアクションに、入れたいデータを**動的なコンテンツ**から選択してきます。`UserName`や`Mail`は**Power BIでのボタンクリック時**アクションから取得できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/38a7a32b-9ee0-d972-2ee3-a9c3796ac6bf.png)

Power BIのPower Automateビジュアルでは、**保存**だけではだめで、**保存して適用**ボタンをクリックする必要があります。これを押しておかないとビジュアル側で使用ができません😮

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/93263bd1-525c-0f49-7da7-924f206cb1c6.png)

ボタンにPower Automateのフローが適用されるとこのように青い背景のボタンが完成します。このままでもCTRL+クリックをするとフローが開始されますが、今回はこのビジュアルをイイねボタンの画像の上に配置をして、ユーザーが**あたかもイイねボタンを押している**かのようにしていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/c2dfdb72-4053-656a-6717-734acf25667e.png)

Power Automateビジュアルの書式設定をいろいろいじると、背景がなくなり、真ん中の三角ボタンだけ残ります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/3d21d968-b647-2570-0ebb-a1adafe8d12f.png)

三角ボタンが少し目立ちますが、まぁこのくらいはご愛嬌。参考にしているYouTube動画のような画像を用意すれば、三角ボタンもいい感じに消すことができますね😮

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/09781807-4e8e-909f-648b-b50b9d24951e.png)

Power Automateボタンをクリックして、実際にPower Automateフローを動かすと、以下のように無事Excelに行が追加されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/76667c4c-099f-b094-9f2a-87abbaa4f19a.png)

# 複数レポート、複数ページに対応したい😁

今までの形式でほぼほぼやりたいことの大枠が完成しました。

ただ🤔実際には、社内で展開している**レポートは複数あり、またそれぞれのレポートには複数ページがある**ことが当然です。こういった状況にも対応できるようにもう少し改造していきます。

手動で作成するテーブルにはレポート名とページ名の列名を追記しておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/86a644e4-c6a1-df16-8100-c69671ee845f.png)

先程の手順と同じように、Power Automateビジュアルに値を渡すためのMeasureを作成していきます。

```dax
RATE_UP = 1
```

```dax
RATE_DOWN = -1
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/0c94eac5-862e-9d04-8d54-a84b43c8f568.png)

OneDrive上に作成しておくExcelも先程よりも列数を増やします。`ReportName`や`PageName`も入るようにしておけば、複数レポートでこのExcelを共有することが可能になります。このExcelをデータソースにしてさらに可視化することができるようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/d45741dc-d94e-a4b7-e2a4-9c37e0dd2c9a.png)

## **Apply to each** の動きに注意

Power Automateビジュアルは先程と同様に、「Excelに行を追加」をアクションに設定します。前回もそうでしたが、ここで**Apply to each**が出現していることがポイントになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/f82a2fa2-aff2-83da-b0ce-514f318fe82c.png)

このまま、Power BIのPower Automateビジュアルを設定し、クリックするとExcelに列が追加されます。

が、ボタンを押すと下図の上2行が同時に記録されます😮

これは、事前に作成しておいたテーブルに、１つのレポート名につきページ名が２つあるため、ボタンが押されるたびにすべての組み合わせ分（この場合は２つ）の処理を行う動きをするためです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/be7a907e-24e1-7991-f92c-a586a4ae6c3c.png)

ということで、ボタンを設置したページごとに手動で作成したテーブルがレポート名・ページ名で１行になるようにフィルター処理をするようにします。ページ１ではページ１だけが使用されるようにフィルター。ページ２ではページ２のみ使用されるようにフィルターペインで指定します。下図はページ２でのフィルター設定をキャプチャーしています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/91ab0cb8-1433-b3be-c1b2-0febe28af7d8.png)

すると、今度は期待したとおりの動作をするようになりました🎉
Power Automateビジュアルをクリックすると、そのレポート名、ページ名が表示される１行が追加されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80467/cae230ab-4244-120f-60c3-ea0e15feb834.png)

# まとめ

Power Automateビジュアルはアイデア次第でもっといろいろ工夫できそう！😀