Power Automate初心者向け具体例の第三回目です。
Todo管理ツールにはPlannerなどのツールがありますが、どうしてもExcelを使用したい時があると思います。
Excelから日付情報を取得したり、現在の日付と比較する方法を解説します。
簡単のために日付情報のみ扱います。時間も含めて取得、比較する方法はまた別の記事で。
データテーブルを作成する
データ取得元となるExcelとテーブルを用意します。ExcelはOneDrive内に保存しておいてください。

このようなデータがあるExcelファイルを想定しています。このままでは読み込んでくれないので、テーブルにします。
対象のセル範囲を選択した状態で、スタイルタブのテーブルとして書式設定をクリック、好きなスタイルをクリックするとテーブルにすることが出来ます。

テーブルにすることが出来ました。

これでPower Automateで読み取ることが出来るようになりました。
日付と項目を出力するフローを作成
一日ごとに項目を取得したいので、今回はスケジュール済みクラウドフローを選択します。

毎日朝9時にフローを起動するためには以下の様に設定します。

入力後、作成をクリックします。
Excelファイルから情報を取り出す
+新しいステップを選択し、Excel Online (Business)→表内に存在する行を一覧表示を選択します。

ブロック内の各項目に入力していきます。

場所 | OneDrive for Business |
ドキュメントライブラリ | OneDrive |
ファイル | Excelファイル名.xlsx |
テーブル | テーブル名(変更していなければテーブル1) |
現在の時刻を取得する
+新しいステップ→日時→現在の時刻を選択します。

表内の各項目を参照するよう設定する
+新しいステップ→コントロール→Apply to eachを選択します。

動的なコンテンツから、valueを選択します。

これで行内に存在する各行の値を参照して繰り返し処理してくれるようになりました。
シリアル値を日付にする
Excelから取り出した値は日付としての情報ではなくシリアル値(Excelで日付列の情報を数値列に変換した時に表示されるアレ)になっています。
そこでExcelから取り出したシリアル値を日付に戻す処理をする必要があります。
Power Automateの日付の基準値である1899/12/30に取り出したシリアル値の日付を足します。
アクションの追加→日時→時間への追加を選択します。

それぞれの項目に以下の様に入力します。

これでExcelから取り出した日付をPower Automateでも日付として扱えるようになりました。
このままTeamsに出力させてみます。
Teamsに出力
アクションの追加→Microsoft Teams→メッセージをフローボットとしてユーザーに登録するを選択します。

動的なコンテンツより、以下のように入力します。受信者には自分を指定してください。
算出時間がセルの中の値です。

保存し、テストしてみます。

きちんと出力されました。タイムスタンプとして表示されていますので余分な情報も表示されていますが、今回は比較することが目的ですのでフォーマットを変換はしません。
formatDateTime関数あたりを使用すれば変換できるはずです。
現在の日付より後の項目を取得する
Apply to each内の時間への追加の後に条件(If)を追加します。

条件の中はこのように設定します。

これで算出時間が現在の日付より後かどうかを比較することが出来ます。

先ほど作成したメッセージをフローボットとしてユーザーに投稿するをはいの場合の中に移動します。
この状態でテストしてみます。

現在の日付2021/3/24より後の項目のみ取得できました。
現在の日付から2日後までの項目を取得する
さらに条件を追加して2日後までの項目に絞ります。
時間への追加を追加します。

以下のように入力して、算術時間2を二日後の値に設定します。

次に、条件を追加します。

左が算術時間(Excel内の時間)、右が算術時間2(2日後の日付)です。
最後に、またメッセージをフローボットとしてユーザーに投稿するをはいの場合の中に移動します。

これで完成です。テストしてみます。

現在の日付から2日後までの項目のみ出力出来ました。完成です。
まとめ
Excel内の日付情報を取り出すために必要な処理や比較などの処理をする方法についても解説しました。
コメント
[…] 第三回→【初心者向け】Power Automateの使いかた 3 Excelから日付情報を取得・比較する […]
[…] 第三回→【初心者向け】Power Automateの使いかた 3 Excelから日付情報を取得・比較する […]
[…] →【初心者向け】Power Automateの使いかた 3 Excelから日付情報を取得・比較する […]