ごきげんよう、百合宮桜(Miyu)です(≧▽≦)
今回はあまり手を出していない Excel 内の日付に手を出してみました。
概要
当番表のような Excel があって、その当番をやる人に通知を出すというフローを作りました。
以下の前提条件を守った形式にしてください。
- メールアドレス列に入れる値は Microsoft 365 にサインインするメールアドレスである
- 当番表はテーブルになっている
- Excel ファイルは OneDrive か SharePoint に保存されている
Excel ファイルのデータを取得する
Excel コネクタの表内に存在する行を一覧表示アクションで Excel のテーブルデータを取得することができます。
日付形式での比較がしたいので、詳細パラメーターの DateTime Format は必ず ISO 8601 形式を指定してください。
今日の日付の取得
今日の日付は日時コネクタの現在時刻の取得アクションで取得できます。
ただこれで取得できる日付は世界協定時(UTC)なので、日本時間に変換する必要があります。日本時間への変換には日時コネクタのタイムゾーンの変換アクションを利用します。
Time Unit は Excel の日付形式に合わせる必要があるので、カスタム値で以下を設定します。
yyyy-MM-ddT00:00:00.000Z
Excel の日付列=今日かどうかを判定する
条件アクションで比較して、True だった(Excel の日付列=今日だった)場合だけ Teams にメッセージを送信することにします。
Excel のテーブルには複数のレコードがある前提なので、条件の左側の値を入れた瞬間に自動で For each がつきます。
Teams で通知する
条件の True の中に Teams コネクタのチャットまたはチャネルでメッセージを投稿するを入れます。
これで Teams にフローボットから通知が届きます。
投稿者はフローボットにしておくと、自分が当番の時も通知が届くので安心です。
※投稿者がユーザーだとメッセージ自体は届きますが、アクティビティへの通知がなくなります💦
まとめ
いかがでしたか?
Excel 内の日付の扱いは地味にムズカシイ部分です。Power Automate の出力結果を見て、最適な方法を見つけられるようになるといいですね。それではごきげんよう♪