Excelのシリアル値をタイムスタンプに変換する
この記事はSPSS Modeler データ加工逆引き12-16「Excel入力時に日付やタイムスタンプがシリアル値で表示される」と連携して書かれています。
1.想定される利用目的
・Excelで部分読み込みした際にシリアル値として表示される日付やタイムスタンプの補正
2.サンプルストリームとデータのダウンロード
ストリーム
https://github.com/yoichiro0903n/blue/raw/refs/heads/main/serial_value.str
データ
https://github.com/yoichiro0903n/blue/raw/refs/heads/main/DateFormat.xlsx
3.サンプルストリームの説明
a.入力するデータは以下の通りです。[TS]フィールドには本来タイムスタンプが表示されますが、Excelで保持していたシリアル値として表示しています。
シリアル値表示になった原因は、読み込み時に範囲指定をしたことです(この例ではA5からB15のセルを指定)。シート全体を対象にした場合は、セルにユーザー定義していない限りそのままタイムスタンプとして表示されます。
b.[フィールド作成]ノードを編集します。シリアル値の小数点以上をintof関数で切り出し、基準日に秒単位で加算しタイムスタンプの日付部分を作成します。関数の特性を考慮して基準日1900年1月1日の2日前を起点にしてます。
[プレビュー]します。
c.[フィールド作成]ノードを編集します。日付以降の時刻部分を[TS]の小数点以下を用いて作成します。こちらも関数の特性を考慮して、1秒多く式に加算します。
d.[フィルター]ノードを編集します。
[テーブル]を実行します。
注意事項
シリアル値の出現を回避するために、Excelの部分読み込みをせず、必要な箇所をCSVなどのテキスト形式で保存し直すことをお勧めします。特定の帳票を継続的に読み込む場合のみこの方法をご利用ください。
4.参考情報
Excelの固定帳票から範囲指定でデータを選択して読み込む
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)








