2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excelのシリアル値をAutomate上で日付型に変換する

Last updated at Posted at 2025-06-28

はじめに

扱う機会があったので記事にしてみました

Excelのシリアル値は厄介な存在で、何も考えずにAutomateから取得すると数値として表されてしまいます。
そのため、Automateで日付データとして扱い場合は、シリアル値 → 日付データ に変換する必要があります。

1.Excelのシリアル値

いろいろなところで解説されているので、今回は簡単に必要なところだけ記載します

Excelのシリアル値とは、「1900/1/1」 を 「1」 として日付を表す連番です。
ex)「1900/1/2」→「2」

ただこのシリアル値には「1900/02/29」という本来ありえない日付も連番として表されているため、変換を行う際にはこの点を考慮する必要があります。

2.実装

Excelからシリアル値を取得

取得元のExcel
スクリーンショット 2025-06-28 151426.png

Automateで日付(シリアル値)を取得
スクリーンショット 2025-06-28 151622.png
スクリーンショット 2025-06-28 151650.png
今回はofficescriptsで取得してみました

//取得したシリアル値を含むobject
{
  "社員ID": 1,
  "氏名": "ユーザーA",
  "メールアドレス": "userA@sample.com",
  "入社日": 45809
}

シリアル値から日付データに変換

取得したシリアル値に対して次の式で日付データ型に変換します

addDays('1899/12/30',int(outputs('json化')?['入社日']))

シリアル値は「1900/1/1」 を 「1」 として日付を表す連番なので、基準日から連番の数だけ日数を足してあげればよいというのが基本的な考え方です。
ただし上でも記載した通り、存在しない日付がシリアル値では1日余分にカウントされているため、「1900/1/1」の一日前である「1899/12/30」を基準日としています

3.実行結果

期待値通り日付型に変換できました
スクリーンショット 2025-06-28 152535.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?