はじめに
Microsoft Teamsには、チーム内で、簡単にMicrosoft Formsの投票機能が呼び出せ、その結果が簡易的な棒グラフで同チーム内にリアルタイムに表示できます。また投票されたデータはMicrosoft Formsの管理機能で円グラフ、1件づつの回答結果、Excelでの回答一覧を取り出せます。
こちらを、Power AutomateとPower BI Serviceを連携することにより、リアルタイムに好きなビジュアルで表示するようにします。
尚、当初は【1】の手順でTeams内で使えるクイック投票機能(FormsがTeamsの投稿時のアプリになっているもの)を使おうとしたのですが、うまくいかないことに気が付き、【1-2】【5】【6】の手順を追記しています。手順変更によって読みづらい部分もあるかと思いますが、失敗の経験、注意すべきことももシェアするということでご了承ください。
ご注意
本記事の作成者である私は、市民開発者(シチズン・ディベロッパー)であり、ところどころ技術的説明が雑な説明を含みます。ご了承いただき、より正しい説明はMicrosoft Docs、後記の参考にした有用なリソース等の関連箇所を参照ください。
利用イメージ図
(左:Teams内のForms、真ん中:Power Automateの実行ステップ、右:Power BI Serivceでリアル表示)
※実際のデータ数はテストデータを含むため、異なります。
利用環境の概要
本資料は各サービスのライセンスに対応する機能の詳細等は割愛します。概要は以下のとおりです。
- Microsoft Teams(ビデオ会議、ビデオチャット等コラボ基盤。無料版ではない通常版。Microsoft 365の大半のライセンスに付属)
- Microsoft Forms(アンケート集計サービス。Microsoft 365の大半のライセンスに付属)
- Power Automate(アプリ、データ等の自動連携。Microsoft 365の大半のライセンスに付属)
- Power BI Service(Power BI Proにある1サービス。Microsoft 365 E5に付属他、単体購入等に付属)
- 上記の各サービスは、同じMicrosoft 365の組織テナント内にあるものとする。
概要図(データの流れと説明順)
【1】(事後で見直しになった)投票フォームの作成(Microsoft Teams部分)
注意 この部分の方法を見直したものは後記の【1-2】にあります。そちらの手順を採用してください。
Teamsアプリの投稿「その他のオプション」(・・・)からFormsを選択します。
投稿を作成して..
送信すると、チームのチャネル内に投票とそのリアルタイム結果ボードができます。実際に投票を送信するとボードが更新されます。
【2】投票されたデータの確認(Microsoft Forms部分)
Microsoft 365ポータルからFormsを呼び出します。
Teamsで作成した投票を選択し、「Responses」で結果が投票されていることがわかります。そして、上部のワーニングにあるように、この投票フォームはこれ以上編集できません。((補足)このメッセージがでるのは【1】の場合のみ)
Excelで開くをクリックすると(Teamsの同じ組織テナント内の)ユーザーやメールアドレスも自動で取得されいることもわかります。
【3】可視化する受け側部分の作成(Power BI部分)
Microsoft 365ポータルからPower BI Serviceを呼び出します。
マイワークスペースの「+新規」から「ストリーミングデータセット」を選択します。
APIを選択し[次へ]
「データセット名」、Formsから取得する項目を「ストリームからの値」を設定します。日時と数値は必須で設定し、その他は取得するものを入れます。履歴データの解析はオンにして、ストリーミングデータセットに加えてプッシュデータセットも受け取り、Power BI Service上でレポートを作成できるようにします。
最終確認画面で完了を押すことで、ストリーミングデータセットの作成は完了です。
(補足)下部にあるテキスト部分(JSON形式)をPower Automateで利用する必要がある場合もありますが、以降の手順で進めた場合は不要でした。
適当にカードや、テーブル等を配置しましょう。各ビジュアルの右上にあるピン留めし、リアルタイム表示するダッシュボードに留めます。
モバイル用のレイアウトも作るか聞かれます。後でも設定できるので一旦ダッシュボードへ。
【4】データのつなぎ(Power Automate部分)
Microsoft 365ポータルからPower Automateを呼び出します。
以下のようにFormsの新しい応答の送信からスタートして作成します。
現在の時刻を取得し、さらにタイムゾーンを変換します。
「Office 365ユーザー」から名前取得を行うため呼び出します。そして、Formsのメールアドレスを指定します。
「データセットに行を」でPower BIに関する設定します。
ワークスペースは「My Workspace」等【3】で選んだスペース、データセット、テーブルは「RealTimeData」をセットします。
すると、その他のテーブルの項目をセットする画面がでます。変換後の時間、Formsの各項目(応答通知のID、出欠の回答)、Office365から表示名とメールを設定し、保存します。
一連の動作確認
Formsに行き、右上の[Preview]を押し、テストで1件投稿します。
Power Automateは左上の[←]で前の画面に戻り、
下の実行が、成功しているか見ます。
開始の下の日付をクリックすると詳細の実行状況が見られます。
Power BIの項目を見ると、指定した項目が送られていることがわかります。もしエラーになったら、エラーの内容を確認し、右上の編集から一部修正しましょう。
Poer BIレポートに値は入ってるでしょうか?更新がなければ、その他のオプション(・・・)から更新を。すると表示されました。
テーブルは必要な項目のみに。投稿時間の新しいのが上にくるようにするとよいでしょう。
あらためて、ダッシュボードへのピン留めもし直します。レポートの保存を忘れないように。
ダッシュボードを画面に出したまま、FormsからテストでPreviewから投稿してみましょう。
1件追加で投稿されれば、OKですね!!
「データについて質問する」は不要なので消しましょう。ダッシュボードのその他のオプション(・・・)から設定に進み、Q&Aをオフです。
その他、同様にレポートでビジュアルの追加等を行い、ピン留め等を繰り返しビジュアルを整えましょう。
以上で終了です。自動的に画面が動くのはダッシュボード上で見られます。
Power BI Mobile(アプリ)でも自動更新
ピン留めした後にででる案内等から「Phoneビューの編集」を行うと、Power BI Mobile(アプリ)で表示される見栄えを調整できます。右上の切り替えから「Webビュー」のダッシュボードに戻れます。
データのメンテナンス(クリア)
プッシュデータセット(レポートで表示しているデータ)は、データセットの編集から「履歴データの解析」をオフにして保存すると消えます。再度アンケートを取得するときは、オンにして保存します。
ストリーミングデータセットは、1時間経過で自動的にクリアされます。
Forms側のデータのクリアも行いたいときは、[Responses]から結果を表示して回答の削除を行います。
(振り返り)ここにきて、致命的なミスに気がつく...
データをクリアして、あらためてTeamsからテストしたのですが、Formsにデータ蓄積されるものの、Power Automateからは進みません。
どうやらTeamsのメッセージ欄からアンケートを起こす、クイック投票では、Power Automateから先は動かないようです(原因不明)。
またもし動いたとしても、投票が投稿された後、チームユーザーはすぐに回答する可能性が高いです。そうなると【2】~【4】の準備ができていないので、うまくいかずでした...(浅はかでした)。というわけで、改良版の【1-2】を次に書きます。
【1-2】(改良版)投票フォームの作成(Microsoft Forms)
####(補足)【4】「データのつなぎ(Power Automate部分)」のForm指定の微修正
【1-2】から【4】にいけば、【4】自体は修正する必要がありません。【1】を実施していた私は、Formsの該当フォームを結びつけなおしました。
次にFormsからPower BIまで動作確認を実施します。
【5】投票フォームをリリース(Microsoft Teams部分)
TeamsのタグにFormsを貼って、ユーザーに使ってもらいましょう。タブから...
【6】投票結果の見える化(Microsoft Teams部)
投稿結果は、Power BIのレポートをタブに呼び出しましょう。
ダッシュボードは呼び出せない模様。同様のものを呼び出したい場合、My Workspace以外のワークスペースにしてアプリにするという方法でしょうか..
補足ですが、Formsの回答をタブに追加することもできますね。
Formsの入力とPower BIの見える化に関するさらなる応用等
Formsで蓄積されるデータのPower BIの可視化についての応用例には以下もご参照ください。
- Formsで複数の回答をOKにした場合、Power BI Desktopを使ったデータ整理については、@yugoes1021 さんの[Power BI Tips] 列の分割には横と縦がある!? ~Power BI でアンケートを分析する場合に複数選択可能な値に困った時の対処法~ - Qiitaの参照を。
- PowerBIのスマホ用Vizについて考えてみた - Qiita
参考にした有用なリソース等
- @yugoes1021 さん Power BI で動くグラフを表示するには?~ストリーミングデータセット~ - Qiita
- @yugoes1021 さん アンケートを即可視化!~MS Forms ⇒ MS Flow ⇒ Power BI~
- @yugoes1021 さん 開発者におくる Power BI を使う時に考えるべきアーキテクチャ ~ データを溜めるのは誰だ? ~
- Microsoft Teams で投票を作成する - Office サポート
@yugoes1021 さんばっかり!w はい、本記事はこれまでPower BI勉強会やQiita等で教えてもらったことが軸です。Power BIについて本質的なことを身につけていくには、Microsoft MVPのひとり、@yugoes1021 さんのアウトプットから学ぶことをおすすめします。
おわりに
ストリーミングデータセットを利用したリアルタイムアンケートの仕組みについて、実施するたびにどこか肝になることを忘れる、抜けるので、Teamsの中でシンプルなFormを理由にまとめ直してみました。リアルアンケートの少しかっこいい可視化をやってみたいな、という方は是非トライしてみてくださーい。
「(振り返り)ここにきて、致命的なミスに気がつく...」のところは、大きな見落としでした。反省しています。ただ、経験でいろいろわかりまるものですね。手を動かすこと大事です。