緒言
うちの職場では共同で使う部屋の掃除を使用課輪番で週1回やってます。これが頻繁に課が変わるからメンテナンスがめんどくさい!通知を自動化したいだけならSharePointリストで名簿作ってPowerAutomateでスケジュールフローを回せば良いですが、メンバーや課そのものがちょこちょこ変わるのでExcelで輪番表を管理したい!でも通知は自動化したい!ということでした。
やりたいこと
Excel掃除当番表に基づいてPower Automateクラウドフローで当番通知を自動化
方法
1.問題のExcel
部署の列があって当番日に”〇”が書かれている伝統的なやつ。”上長”列に〇がついてる部署に対応したその部署の上司のメールアドレスが数式で表示されるようにしてます1。
Excelメンテナンス担当者は部署の変更や増減があったら列を修正して〇をつけなおすのと、上長リスト更新。
2. Power Automateフロー
全体
・ 当番曜日に繰り返しスケジュールトリガー
・ 日付をExcelで検索できるように変換
・ Excelで日付列を検索して該当レコードを参照
・ 該当行の上司に紐づく部下を取得
・ メールアドレスを結合して通知
日付変換
Excelの日付列のシリアル値と比較するため、フロー実行日をシリアル値に変換。
まずは最初のCompose
で起点日の1899/12/302を標準フォーマットへ
perseDateTime('18991230','ja-JP','yyyyMMdd')
次のCompose2
で起点日と今日の日数差を取得
dateDifference(outputs('Compose'),body('Convert_time_zone'))
最後のCompose3
で整数部分だけ抽出してシリアル値へ
int(split(outputs('Compose_2'),'.')[0])
Excelで該当レコードを取得
メールアドレスの結合
結言
シリアル値の取り扱いだけ注意したらExcelからの自動かもサクッとつくれますね!