Excel入力時に日付やタイムスタンプがシリアル値で表示される
この記事はSPSS Modeler データ加工逆引き1-25「Excelのシリアル値をタイムスタンプに変換する」と連携して書かれています。
1.想定されるトラブル
・Excelで部分読み込みした際に日付やタイムスタンプがシリアル値で表示される
→この問題はシート全体を読んだ時やCSVなど別の形式で読み込み直した場合には発生しません。
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.[Excel入力]ノードを編集します。
実際に読み込むエクセルは以下のA5セルからB15セルです。
エラーの現象を確認する
[プレビュー]します。
[TS]フィールドには本来タイムスタンプが表示されますが、Excelで保持していたシリアル値として表示しています。
シリアル値を小数点で日付と時刻に分解しタイムスタンプに変換する
b.[フィールド作成]ノードを編集します。シリアル値の小数点以上をintof関数で切り出し、基準日に秒単位で加算しタイムスタンプの日付部分を作成します。関数の特性を考慮して基準日1900年1月1日の2日前を起点にしてます。
[プレビュー]します。
c.[フィールド作成]ノードを編集します。日付以降の時刻部分を[TS]の小数点以下を用いて作成します。こちらも関数の特性を考慮して、1秒多く式に加算します。
d.[フィルター]ノードを編集します。
[テーブル]を実行します。
注意事項
シリアル値の出現を回避するために、Excelの部分読み込みをせず、必要な箇所をCSVなどのテキスト形式で保存し直すことをお勧めします。特定の帳票を継続的に読み込む場合のみこの方法をご利用ください。
4.参考情報
Excelの固定帳票から範囲指定でデータを選択して読み込む
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)









