- ベストアンサー
Excelで日付・時刻の書式設定について
2009-10-11T13:06:13+09:00 2009-10-11T13:07:53+09:00 2009-10-11T13:09:30+09:00 ・ ・ ・ 上記のような「年-月-日T時:分:秒+09:00」という形で日付・時刻のデータがあります。この形式ではExcelは文字列としてしか認識してくれません。 そこで、Excelが日付・時刻として認識してくれるフォーマットにしたいのですが、置換する方法がわかりません。 使用しているのはExcel2000です。ご存知の方、ご教授いただければ幸いです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず =left(A1,10)+mid(A1,12,5)+right(A1,5) のようにExcelが日付や時刻だと思い込む部分だけ取り出して足し 算してやればいいでしょう。 勝手に日付シリアル値になるので、日付書式を適当に見繕って指定 してください。
その他の回答 (4)
「2009-10-11T13:06:13+09:00」の右端の「+09:00」の意味は、その左に示されている日時が GMTより9時間だけ進んでいることを表わしている(つまり日本の日時)だけ、とすれば、次式でOKだと思います。 =SUBSTITUTE(LEFT(A1,19),"T"," ")+0
- imogasi
- ベストアンサー率27% (4737/17069)
質問が不完全だな。 内容と最終どうしてほしいか。 >Excelが日付・時刻として認識してくれるフォーマットにしたいのですが この意味も不明。 フォーマットを表示形式の意味で使うなら、その前にセルの値を日付・時刻シリアル値に変換しないと ならないと思うが。 表示形式は日付・時刻シリアル値のセルに適用しないとうまく行かない。 ーーー A1セル 2009-10-11T13:06:13+09:00 B1セル =DATEVALUE(LEFT(A1,10)) とか =LEFT(A1,10)*1 2009/10/11 C1セル =TIMEVALUE(MID(A1,12,8)) とか =MID(A1,12,8)*1 13:06:13 D1セル =TIMEVALUE(RIGHT(A1,5)) とか =RIGHT(A1,5)*1 9:00:00 それぞれセルの表示形式は日付、時刻に設定。 ーー さてこのあとどうしてほしいのか? 2番目と3番目の時刻はどうすべきか。足してしまって良いのか。 Tの意味は? =DATEVALUE(LEFT(A1,10))+TIMEVALUE(MID(A1,12,8))+TIMEVALUE(RIGHT(A1,5)) で良いのか? 表示形式はユーザー定義で yyyy/m/d hh:mm:ssなど。
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! たびたびごめんなさい。 表示形式が違っていました。 yyyy/m/d h:mm:ss に訂正してください。 どうも何度も失礼しました。m(__)m
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! No.1さんの方で回答はでていますので、その方法です。 一例です。 (月・日付が二桁にならない場合も考慮してみました。) ↓の画像でB列に + より前の文字列をシリアル値に変換し、 C1セルの 9:00 を加えたものをC2セル以降に表示しています。 B2セルに =IF(A2="","",TEXT(LEFT(A2,FIND("T",A2)-1),"yyyy/m/d")+TEXT(MID(A2,FIND("T",A2)+1,FIND("+",A2)-FIND("T",A2)-1),"h:m:s")) として、セルの書式設定の表示形式はユーザー定義から 「yyyy/m/d h:mm」 にしています。 C2セルの表示形式はB2セルと同様にし、 数式は =IF(A2="","",B2+$C$1) として、B2・C2セルを範囲指定し、C2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 尚、常に9時間をプラスしたものがC列に表示されるのですが、 A列の+以降の数値が違うのであればアレンジしてみてください。 以上、長々と書きましたが 参考になれば幸いです。m(__)m