• ベストアンサー

エポック秒をExcelで扱う方法?

あるシステムから吐き出されるデータが、日付と時刻が「エポック秒」なる形式になっています。このデータをExcelで普通に日付・時刻として扱うには、どうすれば良いでしょうか? 変換式とかあるんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

A1にエポック秒があるとして、  =(A1/(3600*24))+25569+135/360 でどうでしょうか。 Excelでこのセルの表示形式を(ユーザー定義で) yyyy/mm/dd hh:mm:ss としてみてください。 日本標準時で計算していますが、これでいいかどうかは自信ありません。不要なら省く必要があります。  式の意味は、   A1/(3600*24)     → エポック秒を『日単位』にしています。(日数にしています)   25569     → Excelでの『1970/1/1』の日付連番です。エポック秒をExcelの日付連番にしています。   135/360     → 日本標準時分加算(統計135度 分を加算しているつもりだが・・・自信無し) Excel形式→エポック秒は、上式の逆変換で、  =DATEDIF("1970/1/1",A2,"d")*24*3600+(A2-INT(A2)-9/24)/"0:00:01" でしょうか。表示形式は標準または数値にします。A2がExcelの日付(+時刻)です。 2つの式で計算すると、1037022659 ←→ 2002/11/11 22:50:59 [JTS] でした。 自信なしです。確かめて下さい。

Charlie
質問者

お礼

確かめてみました。 エポック秒→シリアル値(Excel形式)しか試してませんが、正しく変換されてるようです。 元のデータ(エポック秒)がGMTなのか、JTSなのか確認が必要だと認識しつつも目処はつきました。 -------------------------------------------------- ちなみに、日本標準時分加算の部分ですが、「135/360」であってます。計算結果は「0.375」となり、これはExcel形式での時間に換算すると9時間に相当します。 次のように確認しました(Excel上で表示形式を標準と日時に切り替えると分かります) =TIME(9,0,0) → 9:00:00 = 0.375 = 135/360 -------------------------------------------------- どうもありがとうございました。

関連するQ&A