はじめに
本記事の対象者
- Power AutomateでExcelテーブルから日付型のデータを抽出したら、謎の数値(シリアル値)になってしまった。
本記事の目的
- Power AutomateでExcelテーブルから日付型のデータ(シリアル値)を日付の文字列に変換する方法を知る。
PowerAutomateで日付のシリアル値を文字列の日付に変換する方法
2021年2月から無料版Power Automateを使って今まで貯めてきたノウハウを解説していきます。
自分のノウハウを以下の記事にまとめました。
もしよろしければ、確認してみてください!!
今回の紹介するフロー
今回は、謎の値であるシリアル値を文字列の日付に変換するフローになります。
下のフローが今回作成するものです。
Excelテーブルから取得すると少し長くなるので、簡易バージョンで今回は作成します。
シリアル値と日付の関係性について
自分もはじめExcelテーブル上で、日付から数値に変わった瞬間に、「え、なにこの数値。。」となっていました。
ネットで色々検索したところ、この謎の値は「シリアル値」らしいきものだということがわかりました。
自分が理解したものをイメージ化して、下のような図を作りました。
結局は、Excel内で基準日(1899/12/30)の情報を持っていて、それに値(シリアル値)を加算したものが日付になっているということでした。
今回は、上の図の「基準日」と「シリアル値」を用いて、「対象日」を出します!
今回のフローにおける仕様のコメント
今回のフローの一連の流れを下に書きます。
- ボタンを押下したら、フローを実行
- 基準日を元に時間を加算し、シリアル値を日付に変換
- 変換した値を変数に格納
PowerAutomateで日付のシリアル値を文字列の日付に変換フローのコネクタ説明
まずはトリガーから説明していきます。
トリガー(手動でフローをトリガーします):同左
トリガーは、「手動でフローをトリガーします」です。
このコネクタでは、PowerAutomateをインストールしたスマホで、アプリ上のボタンを押下したら、フローを実行するものです。
テストのために入れただけで、特段意味はないため、説明はないです。
コネクタ1(時間への追加):シリアル値から日付に変換
コネクタ1は、「時間への追加」です。
このコネクタでは、「基準時間」から「間隔」分だけの日数を加算してくれます。
今回の例は、「シリアル値と日付の関係性について」で記載した対象日2(2022/2/1)を算出する話です。
そのため、基準日「1899/12/30」に「44,593日」追加した日付である「2022/2/1」を算出します。
算出結果については、実行結果のところで確認したいと思うので、いったんコネクタ1の設定値については、表にまとめておきます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | 基準時間 | 1899/12/30 | Excel上の基準日が「1899/12/30」なので、ここはおまじないのように覚えて設定してください。 |
2 | 間隔 | 44593 |
ここはシリアル値を入れます。 |
3 | 時間単位 |
日 |
シリアル値は日付の値なので、「日」が固定になります。 |
実際に使用する際には、No2の「間隔」の部分に、Excelテーブルのシリアル値を入れることになります。
実例は、別途記事にしたいと思います。
また、シリアル値に小数点がある場合があり、そちらは時間になるのですが、今回はそこは考慮しないフローになります。
おそらく実装するのであれば、小数点部分を切り取って、時間変換しないといけないと思います。
※言葉だけなので何言っているかわからないかもしれませんが、気が向いた場合は、記事にします。
コネクタ2(変数の初期化):シリアル値から日付に変換した値を格納
コネクタ2は、「変数の初期化)」です。
このコネクタでは、コネクタ1の値を文字列の変数にただ格納しています。
コネクタ1の設定値の確認結果をするために、入れているだけなので、こちらもトリガー同様説明はないです。
実行結果
今回、フローを実行してみますと、以下のような結果になります。
まずは、正常に終了していることがわかります。
それでは、肝心のコネクタ1の結果を確認してみましょう!
出力部分でちゃんと対象日2(2022/2/1)になっていることがわかります。
これで、シリアル値から日付への変換は完了です!
念のため、文字列に格納した結果も載せておきます。
「値」に日付が入っていることがわかります。
「値」をみて、「時間や秒の部分とかいらないな〜」と思う方もいると思います。
その場合は、コネクタ「タイムゾーンの変換」の設定項目「書式設定文字列」で、「yyyy-MM-dd」にすれば、年月日までの表記することができます。
コネクタ「タイムゾーンの変換」の使い方については、以下の記事を参考にしてください。
補足情報 今回のフローの想定用途
今回のフローの想定用途は、Excelテーブルの日付を抽出した際のシリアル値の変換になります。
もっと実用的な視点での想定用途は以下のものになります。
用途1:Excelテーブルの台帳で管理している日付のメール展開時の日付表示での情報共有
用途2:Excelテーブルの台帳で期限が近づいた際にリマインドするための数値を取得
用途1はもともと、この記事を作成するきっかけになったもので、以下の記事の中で日付がシリアルになったことがきっかけです。
今回の記事を元にシリアル値を日付に直していただければと思っています!
用途2は、副産物的に考えついた用途です。
用途2は、個人的にも実務で使いたいので、記事にできるようにします!
まとめ
まとめに入ります。
業務効率を上げるために提供されているMicrosoft365のツール群で、今回はPowerAutomateで日付のシリアル値を文字列の日付に変換する方法を説明しました。
今回のフローの想定用途は、今回のフローの想定用途は、Excelテーブルの日付を抽出した際のシリアル値の変換になります。
また、より実務に使用できるのは以下の用途です。
用途1:Excelテーブルの台帳で管理している日付のメール展開時の日付表示での情報共有
用途2:Excelテーブルの台帳で期限が近づいた際にリマインドするための数値を取得
記事にできるようしていこうかとは考えていますので、記事を作成次第、更新します
最後まで読んでいただきありがとうございます。
コメント