• ベストアンサー

Excelの時間表示

2:30を2.5、2:50を2.83というように、時間の表示([h]:mm)を、"分"は使わず、"時間"だけで表すことはできますか?

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

A1に時刻が入っているなら、別のセルに =MOD(A1,1)*24 と入れれば出ると思います(このとき勝手に時刻に書式設定されるようなら、セルの書式設定で標準に戻してください)。

3bb3bb3
質問者

お礼

ありがとうございます。 単純に24を掛けて、表示形式を標準にすれば、できました。 MODを入れる意味は何ですか?

その他の回答 (4)

  • subri
  • ベストアンサー率28% (16/56)
回答No.5

関数で宜しければ =A1/"1:00"としてみてください。 "1:00" の意味は、1時間を1単位として、これで割り算しています。 この数式が入力されているセルの書式は標準にしておいてください。

3bb3bb3
質問者

お礼

ありがとうございます。 この方法でもできました。

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

#2 の harukabcde さんへのフォローです。 表示形式のままではうまく行かないので、イベント型のマクロを考えてみました。 こんなものは、あんまり役に立たないでしょうけれども、思った以上に、マクロでやると、関数よりも難しいです。(関数を使えばよいのですが(^^;) このマクロは、A1:A10 までに、2:30 などと入れた時に反応するように出来ていますが、そうでないときは、0が入ります。 '<シートモジュール> Private Sub Worksheet_Change(ByVal Target As Range) Dim myTime As Double Dim test As Variant If Not Intersect(Target, Range("A1:A10")) Is Nothing Then  Application.EnableEvents = False  On Error GoTo Err   test = Format(Target.Value, "hh:mm")   myTime = Target.Value   If myTime > 1 Then myTime = myTime - Int(myTime)   Target.Value = Int(myTime * 24 * 100 + 0.5) / 100   Target.NumberFormat = "0.00"  End If Err: Application.EnableEvents = True End Sub

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.3

No.1の補足への回答です。 MODを入れるのは、A1に日付が一緒に入っている場合に備えたものです。Excelでは、整数部で日付、小数部で時刻を表わしています。 たとえば、A1に2005/3/21 18:15 と入っている場合です。

回答No.2

エクセルの表示機能では出来ません。 例にある 2時間30分 という値は シリアル値では 0.1041666666・・・ です。 表示ではなく、 シリアル値自体を2.5にするのは 24倍すればいいのですが、 表示設定でどうにかしようとも 2.5 という表示にはなりません。 http://okweb.jp/kotaeru.php3?q=1264810 にも同じ質問がります。

参考URL:
http://okweb.jp/kotaeru.php3?q=1264810
3bb3bb3
質問者

お礼

ありがとうございました。

関連するQ&A