はじめに
本記事の対象者
- Excelテーブルで管理しているタスクで、対応時期が近くなったらリマインドしたい人
本記事の目的
- Excelテーブルで管理しているタスクで、5日以内に対応期限を迎えるものをリマインドする方法を知る。
PowerAutomateでExcelで管理する対応期限が近いタスクをリマインドする方法
2021年2月から無料版Power Automateを使って今まで貯めてきたノウハウを解説していきます。
自分のノウハウを以下の記事にまとめました。
もしよろしければ、確認してみてください!!
今回利用するExcelテーブルと実行結果について
今回作成するフローをご紹介する前に、フローで利用するExcelテーブルの中身とリマインドのメールをお見せします。
まずは、フローで利用するExcelテーブルは以下になります。
テストデータなので、対応状況がめちゃめちゃなのは気にしないでください。。
今回は、以下の条件で抽出したタスクをリマインドする予定です。
表のものでいうと赤枠で囲まれているタスクになります。
そのため、リマインドのメールでは以下のタスクの連絡がきます。
こんな感じなので、もし興味がある方は以降も確認してみください。
今回の紹介するフロー
Excelテーブルでタスク管理しているけど、タスクが溜まってくるとどのタスクが対応期限が近くなってるか忘れちゃうんだよな〜
それであれば、Excelテーブルの台帳に対応期限を入れて、リマインドできる仕組みをPowerAutomateで作れるから真似してみてください。
ということで、今回は現在(2022/2/19)から5日以内に対応期限を迎えるタスクをリマインドするフローを紹介します。
下のフローが今回作成するものです。(めっちゃ長いですけど、ご容赦ください。。)
ところどころ、今まで書いた記事で説明済みの部分があるので、そこは記事を案内して詳しい説明は省いたりします。
今回のフローにおける仕様のコメント
今回のフローの流れを下に書きます。
- 定期的にフローを実行
- フロー実行日をシリアル値に変換
- Excelテーブルから対象のタスクを抽出
- 抽出した情報をhtmlの表に落とし込む
- htmlの表をつけたメールを関係者へ送信
PowerAutomateでExcelで管理する対応期限が近いタスクをリマインドするフローのコネクタ説明
まずはトリガーから説明していきます。
トリガー(繰り返し):同左
トリガーは、「繰り返し」です。
このコネクタでは、どのような頻度でフローを実行するか指定するものです。
今回は、15ヶ月にしていますが、実行したい間隔で設定してください。
個人的には1日に1回でいいと思います。
コネクタ1~6:フロー実行日のシリアル値を取得
コネクタ1~6は、フロー実行日のシリアル値を取得するための処理をします。
本記事でのフロー実行日は(2022/2/19)になります。
日付をシリアル値にするの詳細な説明は、以下の記事を参考にしてください。
上の記事と今回でちょっとした部分が違うので、そこは今から説明したいと思います。
コネクタ1とコネクタ3:おまじないの数値を変数に初期設定
コネクタ1とコネクタ3には、おまじないのように最初から設定されている数値があるので、説明します。
コネクタ1とコネクタ3は、以下のように数値を設定しています。
え、「599264352000000000」と「864000000000」って、何!?この数値、怖い。。
怖くないから、一旦落ち着いてください。変数名にも書いてあるけど、
「599264352000000000」は基準日(1899/12/30)のナノ秒で、
「864000000000」は1日分のナノ秒の表現になります。
おまじないの数値なので、そのまま使ってください。
コネクタ4とコネクタ6:関数を使った変換(ticks関数)と計算(div関数)
コネクタ4とコネクタ6は、それぞれに関数を使って変換・計算をしています。
コネクタ4では、ticks関数を使っており以下のように設定しています。
ticks関数は、タイムスタンプの値をナノ秒に変換するものです。
今回の現在のタイムスタンプ取得にも、utcNow()関数を使っています。
※記事内だと、2022/2/19が現在のタイムスタンプになります。
また、コネクタ6では、div関数を使っており以下のように設定しています。
画像では式が途切れているので、全部書くと以下のようになります。
div(variables(‘指定’),variables(‘1日分のナノ秒’))
やっていることとしては、以下の式になります。
コネクタ7(変数を初期化する):課題一覧の変数定義
コネクタ7は、「変数を初期化する」です。
このコネクタでは、メールの文章に記載するhtmlのテーブルのヘッダ部分を記載しています。
htmlのテーブルの説明については、以下の記事に説明があるので参考にしてください。
少し、htmlの知識がないと理解が難しいと思いますが、逆にここの部分はおまじないのように覚えてしまってもいいかもしれません。
あと、そのままですが、コネクタ7の設定値を表にします。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | 名前 | 課題一覧 |
好きなので問題ないです。 |
2 | 値 | <table border=”1″> <tr bgcolor =”#999999″> <th valign = “middle” align=”center”>No</th> <th valign = “middle” align=”center”>ステータス</th> <th valign = “middle” align=”center”>タイトル</th> <th valign = “middle” align=”center”>担当者</th> </tr> |
ここも、おまじない |
コネクタ8(変数を初期化する):現在の日付に5日加算
コネクタ8は、「変数を初期化する」です。
このコネクタでは、add関数を使って、現在の日付(本記事では、2022/2/19)のシリアル値に、5日を加算します。
設定は以下のようになっています。
変数の数を増やしたくない関係上、変数「基準日」に現在の日付(本記事では、2022/2/19)のシリアル値が含まれています。
そのため、変数「基準日」に5を加算して、2022/2/19の5日後のシリアル値を作成しています。
コネクタ9(表内に存在する行を一覧表示):同左
コネクタ9は、「表内に存在する行を一覧表示」です。
このコネクタでは、Excelテーブル「課題管理台帳」の情報を取得します。
コネクタ9の設定値については、入力しているところのみ表にまとめておきます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | ファイル | Excelテーブルが保存してあるフォルダパス | |
2 | テーブル | 課題管理台帳 | 指定したいテーブル名をプルダウンから指定してください。 |
コネクタ10~14:対象の行のみ抽出してhtmlのボディを作成
コネクタ10~コネクタ14は、対象の行のみ抽出してhtmlのボディを作成します。
コネクタ11では以下の条件を指定して、情報を抽出しています。
条件1の指定の際には、Excelテーブルから出力するデータは文字列であるため、一度数値に変更する必要があります。
文字列から数値に変換するために以下のように記述しています。
int(items(‘Apply_to_each’)?[‘対応期限’])
詳細な説明は別記事に記載させていただきます。
続きまして、抽出条件に該当したデータに対しては、htmlのボディをコネクタ14で作成しています。
またコネクタ12,13では、ボディの項目「対応期限」のシリアル値から日付(yyyy/MM/dd)に変換しています。
詳しい説明は、以下の記事を参考にしてください。
コネクタ15(文字列変数に追加):課題一覧のテーブルの終了タグを追加
コネクタ15は、「文字列変数に追加」です。
このコネクタでは、テーブルを完成させるためのタグを文字列変数に追加します。
内容を表にまとめておきます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | 名前 | 課題一覧 | |
2 | 値 | </table> | おまじない |
コネクタ16(メールの送信(V2):同左
コネクタ16は、「メール取得(V2)」です。
このコネクタでは、今まで作ったタスク表の一覧を載せて、共有するメールを送信します。
実行結果
それでは、今回紹介するフローを実行してみましょう!
問題なく実行されていることがわかります。
個人的に気なるコネクタの実行結果も確認していきます。
コネクタ4の実行結果は以下です。
utcNow関数を使ってナノ秒に変換しており、ミリ秒ぐらいまで数値が入っていることがわかります。
以下のコネクタ5の実行結果からわかる通り、日付を算出する際には影響はなさそうです。
コネクタ5で、現在日(2022/2/19)はシリアル値だと44611になります。
コネクタ8では44611に5を加算するのですが、以下のように正常に加算できていることを確認できます。
そして、コネクタ16で送信したメールは以下のように受信できていることを確認しました。
ちゃんと、抽出したいレコードと対応期限がシリアル値ではなく、yyyy/MM/ddの日付表示になっていることが確認できます。
以上です!
補足情報 今回のフローの想定用途
今回のフローの用途は、管理しているタスクの中で対応期限が近いものを自動的に抽出してリマインドしてくれるように設定することを想定しています。
管理しているタスクが膨大になってくると、優先順位が高いものや対応期限が近いものなどを意識することができなくなってくるので、非常に便利なフローです!
まとめ
まとめに入ります。
業務効率を上げるために提供されているMicrosoft365のツール群で、PowerAutomateでExcelで管理する対応期限が近いタスクをリマインドする方法を説明しました。
今回のフローの用途は、管理しているタスクの中で対応期限が近いものを自動的に抽出してリマインドしてくれるように設定することを想定しています。
シリアル値の扱いは、以下の記事を参考にしてみてください。
最後まで読んでいただきありがとうございます。
コメント