• ベストアンサー

ExcelでCGIログの日付を変換したい

PerlCGIでは$timeで1070年1月1日0:00からの経過秒数を取得していますが、それで取得される数字をエクセル上で作るにはどうすればよいでしょうか。今元となるセルには2008/08/22(tue) 10:22のように入っています。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

#2です =(REPLACE(A1,11,5,"")+303153)*86400 に訂正です スマン

Maiet
質問者

お礼

文字列取り出し関数、あったのですね! これと#4さんを組み合わせて =(REPLACE(元セル,11,5,"")-25569)*24*60*60 これで行けるみたいです。 ありがとうございました。 (#4さんも←お礼書く前にとじてしまった・・・

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 Perl などのUnix Time の始まりは、1970/1/1 00:00:00 これを、Excelのシリアル値の、0の理論値の日付 1989/12/31 00:00:00 (表示はされない) 実際は、単に、1970/1/1 00:00:00 (UTC)のシリアル値を取れば、 25569 2008/08/22(tue) 10:22  (←tue ではなく、Fri でしょう) これが、A1 でシリアル値で入れてあるとすれば、 =(A1-25569)*24*60*60 1219400520 となります。

Maiet
質問者

お礼

おおっと。22日は金曜日ですね(恥)。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

セルA1に 2008/08/22(tue) 10:22 が入力されているとして B1に数式を設定 =(REPLACE(A2,11,5,"")+303153)*86400 では

  • nebsoku
  • ベストアンサー率35% (65/185)
回答No.1

A1のセルに 1070/1/1 0:00:00、 B1のセルに 2008/8/22(Tue) 10:22:00 と入力されているとします。 C1に差を計算します。 =(DATEDIF(A1,B1,"d"))*24*60*60+(HOUR(B2))*60*60+(MINUTE(B2))*60 これで大丈夫かと思いますが、 >今元となるセルには2008/08/22(tue) 10:22のように入っています。 文字列として入力されている場合、ひとひねり必要です。 文字列をシリアル値に変換するか、string関数などを使用して文字を取り出して計算させる必要があります。

Maiet
質問者

お礼

回答ありがとうございます。 んが、HOURとMINUTEの参照先がわからずorzになりました・・・(汗) B2?

関連するQ&A

専門家に質問してみよう