- ベストアンサー
ExcelでCGIログの日付を変換したい
PerlCGIでは$timeで1070年1月1日0:00からの経過秒数を取得していますが、それで取得される数字をエクセル上で作るにはどうすればよいでしょうか。今元となるセルには2008/08/22(tue) 10:22のように入っています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です =(REPLACE(A1,11,5,"")+303153)*86400 に訂正です スマン
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 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 となります。
お礼
おおっと。22日は金曜日ですね(恥)。
- hige_082
- ベストアンサー率50% (379/747)
セルA1に 2008/08/22(tue) 10:22 が入力されているとして B1に数式を設定 =(REPLACE(A2,11,5,"")+303153)*86400 では
- nebsoku
- ベストアンサー率35% (65/185)
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関数などを使用して文字を取り出して計算させる必要があります。
お礼
回答ありがとうございます。 んが、HOURとMINUTEの参照先がわからずorzになりました・・・(汗) B2?
お礼
文字列取り出し関数、あったのですね! これと#4さんを組み合わせて =(REPLACE(元セル,11,5,"")-25569)*24*60*60 これで行けるみたいです。 ありがとうございました。 (#4さんも←お礼書く前にとじてしまった・・・