• ベストアンサー

excel2000でシリアル値を時刻にしたい

エクセル2000を使っています。 数値で例えば 144000 を 14時40分 という時刻のデータにしたいのですがどうしたらいいかわかりません。下2桁の00は必要ないので削除したいです。 わかる人いたら教えてください。(TT); あ、時刻データに出来たら、あとで時間差の計算をするので、表示形式が##時##分になるだけじゃだめなんです。うう。

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

  • ベストアンサー
  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.2

数値はすべて"時分秒"の形式で5桁または6桁で入力されているのでしょうか?(例えば、1時1分は10100というように) もし、そうでしたら、(例としてA1=144000とすると) =INT(A1/10000) で、14(時)が取り出せます。 同様に、 =INT((A1-INT(A1/10000)*10000)/100) で、40(分)が、 =INT(A1-INT(A1/100)*100) で、00(秒)が取り出せます。 これをExcel標準の時刻シリアル値(時間差の計算に使えるExcel標準の形式)に変換するには、 =TIME(INT(A1/10000),INT((A1-INT(A1/10000)*10000)/100),INT(A1-INT(A1/100)*100)) です。式を入力後、表示形式を書式設定で変更してください。(変更しないと、24時間を1とした小数で表示されます。) なお、INT関数はINT(数値)で、指定された数値を小数点以下を切り捨てて整数化します。 また、TIME関数はTIME(時,分,秒)で、時分秒で指定された時刻を時刻シリアル値に変換します。

mozugu
質問者

お礼

おお、これなら時刻-時刻ができます! 感謝感謝です。ありがとうございましたー。 ちなみに日付が変わるもの、(0時23分-23時54分とか)は24を足すことで逃げちゃいました。(^^;

その他の回答 (3)

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

式はB1に=TIME(INT(A1/10000),MOD(A1,10000)/100,0) と入れて以下行に複写しています。 A列数字の下2桁は00を仮定しています。 A列   B列 142000 2:20 PM 152000 3:20 PM 11500 1:15 AM 23100 2:31 AM 182300 6:23 PM 192300 7:23 PM 240000 12:00 AM 120000 12:00 PM となりました。 11500 23100 182300 192300 240000 120000

mozugu
質問者

お礼

うひゃ!こんな手法もあるんですね。式が短くていいですね。エクセル使いの人がうらやましい。どんなお勉強してるんだろう・・・。いいな。 ほんとにありがとうございましたー。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

こんにちは。 スマートではないですが、こんなやり方もあります。 =IF(LEN(A1)=5,TIMEVALUE(LEFT(A1,1)&":"&MID(A1,2,2)),TIMEVALUE(LEFT(A1,2)&":"&MID(A1,3,2)))

mozugu
質問者

お礼

ひょえー。いろいろあるんですね。わざわざほんとにありがとうございます。 papayukaさんにいいことありますように。

回答No.1

今考えてみました.こんな方法どうでしょうか? マクロなど使わないで可能な簡単な方法です. A1セルに「123456」と入力されたら B1セルに「12時34分」と表示させる A1セルに「123456」と入力します B1セルに下記の式を記述する = MID(RIGHT("000000" & A1,6),1,2) & "時" & MID(RIGHT("000000" & A1,6),3,2) & "分" A列が邪魔になったら非表示して見えなくする. こんなのでは,ダメですか?

mozugu
質問者

お礼

ご回答 とってもありがとうございます。 も少し考えて見ます。 ##時##分にはなるんですけどその時間から違う時間を引き算すると「時分」という答えになっちゃいます。 考えてくれて感謝してます。