【AlteryxTips】DateTime型からExcelのシリアル値を計算する方法

AlteryxのDateTime型からExcelのシリアル値を計算する方法をご紹介します

 

Alteryx ACEのAkimasaKajitaniです。

Excelのシリアル値は「1900年1月1日」が基準となっており、そこから1日経つと1加算されていきます。以前のブログ記事で、Excelのシリアル値からAlteryxの日時型に変換する方法は紹介しましたが、今回は逆の内容となる、「AlteryxのDateTime型からExcelのシリアル値を計算する方法」をご紹介します。

 

DateTime型からExcelのシリアル値を計算する

Excelのシリアル値は「1900年1月1日」が基準となっており、そこから1日経つと1加算されていく、という定義を考えると、1900年1月1日からどれくらい経過したかを計算できれば取得が可能です。この場合ではAlteryxでは、DateTimeDiff関数が利用可能です。

 

DateTimeDiff(dt1,dt2,u)

dt1:期間の最後の日付

dt2:期間の最初の日付

u:単位。例えば日単位なら"Day"、秒単位なら"Second"

dt1-dt2と計算されるため、dt2は常に"1900-01-01 00:00:00"となります。dt1の方は、変換したい日付を入れます。

 

Excelのシリアル値は、整数は日、小数部分は時間の部分を示しています。まず、単位をDayでやってみましょう。

 

DateTimeDiff("2024-02-05 12:23:45","1900-01-01 00:00:00","day")

 

この答えは、45325となり小数部分が消えています。単位に指定した部分は切り捨てられてしまうようです。

 

となると、秒単位で差分を出し、計算で求めるしかありません。

 

DateTimeDiff("2024-02-05 12:23:45","1900-01-01 00:00:00","second")

 

この答えは、3916124625となります。今度は非常に大きい整数値になりました。

 

ところで、1日は何秒でしょうか?24時間×60分×60秒で86400秒となります。つまり、秒単位で求めたものを86400で割れば良いということになります。

 

DateTimeDiff("2024-02-05 12:23:45","1900-01-01 00:00:00","second")/86400

 

結果は、「45325.5164930556」ということで、正解です。

 

結論

AlteryxのDateTime型をExcelのシリアル値に置き換える場合は、以下の計算式で可能となります。

 

DateTimeDiff([比較フィールド],"1900-01-01 00:00:00","second")/86400

 

サンプルワークフローダウンロード

ExcelSerial_SampleWorkflow

 

AlteryxDesigner初心者の方向け教育プログラム

京セラみらいエンビジョンでは、AlteryxDesignerをこれから利用していくお客様を対象に、初心者向けのトレーニングをご用意しております。

ハンズオン形式で実施致しており、使用し始めた方の上達をサポート致します。

トレーニング以外にもAlteryxを用いた環境構築、開発、ワークフロー作成を承りますので、お気軽にご相談ください。

おすすめの記事