Teamsの 投稿にされた、いいね!をExcelに集計する
解決できる課題
Teamsのリアクションは、投稿内容の確認を示す既読サインとして便利ですが、以下のようなお悩みはありませんか? ・過去の投稿までさかのぼり、誰が「いいね!」したかを確認するのに時間がかかる ・投稿ごとに「いいね!」を手動で数えたり、確認したメンバーのリストを作成したりする作業が煩雑 ・チームメンバー全員が重要な情報に「いいね!」したかどうか、一覧で把握できていない Power Automateは、投稿へのリアクション集計と、その結果をExcelファイルに自動で記録します。 どの投稿が誰に確認されたかを一覧で可視化できるため、重要な情報への認識漏れを防ぎ、管理工数を削減できます。
完成イメージ

必要なもの
Teams コネクタ
Excel コネクタ
Office 365 コネクタ
作り方
Teamsで全体周知した後、参加者の全員が確認したか、既読の集計をPower Automateで行います。
- 1. トリガー「フローを手動でトリガーする」を設定
集計は任意のタイミングで行うので、インスタントフローとして手動トリガーを使用します。
※定期的に行う場合、スケジュール済みクラウドフローも可能

- 2. アクション「メッセージを取得します」を設定
[チーム]と[チャネル]は、対象のものを設定します。

- 3. アクション「For each(それぞれに適用する)」を設定
今回のフローによる集計では、特定の投稿ではなく、全ての投稿を対象とします。
そのため、Foreach処理を追加し、集計対象となる投稿の数だけ処理を繰り返します。
[前のステップから出力を選択します]には、「メッセージ一覧」を設定します。
※次のステップでアクションを設定すると、自動的に設定されます

- 4. アクション「条件」を設定
いいね!をしたユーザーを特定するため、条件判定を設けます。
条件式は「id」が「空白」と「異なる」に設定します。
※条件を設定しない場合にもフローは動作しますが、不要なデータ(空の値など)も集計してしまいます

- 5. アクション「メッセージ詳細を取得する」を設定
[メッセージ]は、「id」を設定します。
[メッセージの種類]を「チャネル」にし、特定の[Team]の[Channel]を指定します。
このアクションを設定することで、リアクションを取得できるようになります。

- 6. アクション「それぞれに適用する(For each)」を設定
いいね!のリアクションは、複数人が行うので、Foreach処理を追加します。
[前のステップから出力を選択します]には、「reactions」を設定します。
※このForeachは自動では設定されないため、忘れずに手動で追加します
集計するreactionsは、いいね!に制限されず、他のリアクションも包括しています

- 7. アクション「ユーザー プロフィールの取得」を設定
誰がリアクションをしたのか把握するため、Office 365コネクタを使い、組織内のユーザーを特定します。
[ユーザー (UPN)]は「From User User Id」を設定します。

- 8. アクション「表に行を追加」を設定
[場所]と[ドキュメント ライブラリ]は、集計するExcelファイルの場所を設定します。
[ファイル]と[テーブル]は、用意した集計ファイルのファイル名とテーブルを設定します。
※Power AutomateでのExcel追記処理では、Excelでテーブルの作成が必要です
[詳細パラメーター]から、テーブルに作成した項目をそれぞれチェックし、該当の値を指定します。
[件名]は「Subject」(投稿の件名)、[Teams]は「Message Link」(Teams投稿へのリンク)を設定しています。
[ユーザー]にはOffice 365から取得できる「表示名」を設定しています。
日時を取得する時、下記のような式を設定することで取得が可能です。
※[投稿日時]: formatDateTime(outputs('メッセージ詳細を取得する')?['body/createdDateTime'],'yyyy/MM/dd HH:mm')
[いいね!日時]: formatDateTime(items('それぞれに適用する')['createdDateTime'],'yyyy/MM/dd HH:mm')
2つは同じformatDateTime関数を使っていますが、取得先のForeach処理が異なることに注意してください
また、この式はJSTではないので、日本時間にする場合、別に変換(アクション「タイムゾーンの変換」)が必要です

このフローを実行します。
例えば、下図のような投稿がされ、いいね!のリアクションがされたとします。

集計するExcelファイルのテーブルは下図のように入力されます(No.2の行がPower Automateで入力されたもの)。
※No.列には=row()-1を使い、関数で自動採番をしています
