背景(ストーリー)
下図のような、計測器の使用予定を管理しているエクセルがあるとする。(今時エクセルで管理するなよと言われそうですが。現場ではあると思う。)
月毎にSheetとTableができ、各人が予定を記入するが、当日忘れることが多い。
そこで、PowerAutomateで今日の予約をTeamsで通知すれば防げるのではと考えた。
前提条件
-
PowerAutomateを使用するにはライセンスが必要
私は無料のMicrosoft365 開発者プログラムに参加しています。 -
また、PowerAutomateはクラウドです。デスクトップ版ではありません。
-
PowerAutomateでのExcelデータの抽出はTableの必要がある。
作成
今回作成するのは、テーブルを動的に取得するところまで。
(1) Tableの取得
(2) デバッグ用の"作成"アクションを追加
今月のTableを取得するには、関数を使えばよいが、すこし癖があるのでこの作成アクションを入れと、関数の結果が出力される。
"作成"アクションは"組み込み"→"データ操作"の中にある。
Tableの名前は"Plan"+"yy"+"MM"となっているので下図の式を入力するところへ
↓を入力する。
concat('Plan',addDays(utcNow(),0,'yyMM'))
前月でテストできるようにaddDays関数を使っているが下記でも問題ない。
concat('Plan',utcNow('yyMM'))
(3) Apply to eachでTableをループして分岐処理
この下に"条件"を追加。
Tableの名前と(2)の"作成"の"出力"で比較する。
"出力"でなくても、同じ関数を入力すればできるが、同じものはできるだけ使わないほうが変更に強い。
後は、"はい"の場合にアクションを追加しごにょごにょすればいいが、今回はテーブルを動的に取得するところまでなので、
"作成"で出力して完成とする。
Tableからデータを取得してTeamsで通知するのはまた今度。