• ベストアンサー

お力添えください。

お力添えください。 現在 Excelのセル内にてテキストフォーマットにて YYYYMMDD hh:mm:ss とGTMではいっているものに 一定の時間を(+9:00:00)追加し、日本時間に変えさせたいと考えております。 Time関数などをつかってみましたがうまく動作せず、どうしたらよいか悩んでおります。 Stringで読みこんで、数値変換し、計算後、日にちの繰り上げをさせるがよいでしょうか? しかし、日にちで計算すると、月の繰り上げも考慮することになり、やや手間がかかるように思えます。 もっとシンプルに計算をさせる方法がありますでしょうか? ご助言お願いいたします。

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

  • ベストアンサー
  • riveron77
  • ベストアンサー率48% (180/370)
回答No.1

A1に「20100630 10:50:03」という値、セルの書式は文字列。 B1に9時間後を出力する場合、 B1には =DATEVALUE(MID(A1,1,4)&"/"&MID(A1,5,2)&"/"&MID(A1,7,2)&MID(A1,9,9))+"09:00:00" …という式を入れ、セルの書式はユーザー定義で「yyyy/mm/dd hh:mm:ss」で。

devilduckie
質問者

お礼

ご助言ありがとうございました。 おかげで目的を達成することができました。 Excel関数を知らない自分が恥ずかしい限りです。 時間をつくり、Excelの基本的な部分を学習させていただきます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>Time関数、Stringで読みこんで VBAの質問では無いでしょう。エクセル関数の問題レベルでしょう。 他もVBAでやる関係上、この部分もVBAでやるのかな。 >Stringで読みこんで VBAやVBの経験があるのかな。しかしこの質問を出しているということは、エクセルの機能の勉強の方がまだまだでしょう。VBは出来てもエクセルは詳しくないというタイプかな。 エクセルの勉強ポイントの1つに、日付(時刻)シリアル値という考えがあります。 日付は1900年の初めからの通し日数(正整数)で表し、時刻は1日24時間を1とした0時からの数(正の小数点つき数)で表す考えです。ですからエクセルでは日付や時刻のセルは、セルの値は数値が入っている。 この仕組みを使うと、時間の足し算引き算が、数の足し算引き算に置き替わる。 また日替わり、月代わり、年代わり、月の大小、閏年の扱いがエクセルの機能に任せられるので、複雑な場合別けけのプログラムが要らないしプロミスの心配も要らない。 ーー さて本件はセルに文字列でデータが入っているらしい。エクセルの便利な機能を使う(演算や関数利用と多彩な表示形式を使う)ためには これを日付・時刻シリアル値に変換しないとならない。 これには便利な関数がある。 (1)日付文字列を使う  1998/110/23 98/03/02  昭和21年10月15日 など (2)DATE関数を使う    西暦・西暦下2桁年月日の数を引数に指定    年月日の数字文字列    年月日データの入っているセル番地 などが在る。 そしてシリアル値の日付部分と時刻部分は別々(セルに手入力ではスペースを挟んで続けて入力可能)に算出しなくてはならないが、両者を+で足しておく。 >定の時間を(+9:00:00)追加し、 は地域が東にあるに向かって足し算に鳴ると思うが、日付変更線を超える場合は良く考えてください。 日本だけを問題にするなら135/360*24)=9で良いのかも。 ーー さて日付シリアル値に直す関数式は A1セルに 20100630 =DATEVALUE(LEFT(A1,4) & "/" & MID(A1,5,2) & "/" & RIGHT(A1,2))   とりあえず日付シリアル値の整数で表されるだろうが  書式を日付に設定して、見た目2010/6/30になる。 時刻部分に対してもTIMEVALUE関数があるのでA1文字列から時分秒部分を切り出し:を挟んで結合しする。 9時間を足す部分があるので日付+時刻を1セルに表し、そこに+9時間して、日付繰上げの機能を使えるようにする。 ふつうなら (A)両者を足し算する か (B)日付と時刻を別セルニする 方法があるが(A)にならざるを得ないのかな。この辺は世界的な時刻の経験が少ないので質問者で良く考えてください。 ーー VBAにもDateValue,TimeValue、Left,Mid,Rifht関数があるので使えます。このへんはVBA(関数)も関数も同じで、VBAだから飛躍的に便利な関数ややり方は無い。 別途好みの形にユーザー関数はVBAで作れるが。 ーーー エクセルにはCONVERT関数が合ってGTM関連を探したが、無いようだった。

devilduckie
質問者

お礼

詳細なご説明大変ありがとうございました。 Excel関数の便利さ、また、VBAの基本的な部分勉強させていただきたいとおもいます。