• ベストアンサー

エクセルの時間計算方法を教えて下さい。

大きな時間から小さな時間を引き算すると、所用時間が求められます。 たとえば、終了時間のセルから開始時間のセルを引き算すると所用時間が求められます。 ところが、開始時間は21時で終了時間が翌日の5時の場合は所用時間は8時間ですが、今は5時を29時に置き換えて29時時から21時を引き算しています。 これを、そのまま5時の入力で計算できるようにする方法を教えて下さい。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

A1からB1までの時間数は =MOD(B1-A1,1) で時刻の書式を取り付けておけば出てきます。どっちが大きくても計算できます。

uechan1946
質問者

お礼

keithin 様 回答ありがとうございました。 思うような結果がえられました。

その他の回答 (4)

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.5

MOD関数だと、引き算の結果が負の数の場合商が-1になるので返り値が変わりませんか? ABS関数の方がよさそうな気がしますが。

uechan1946
質問者

お礼

chonami 様 回答ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

たびたびごめんなさい。 1行間違っていました。 もう一度最初からコードを載せます。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から With Target If .Address = "$B$2" Then If .Value <> "" And .Value < Range("A2") Then '←ココが間違いでした .Value = .Value + 1 End If End If End With End Sub 'この行まで 何度もごめんなさい。m(_ _)m

uechan1946
質問者

お礼

tom04 様 回答ありがとうございました。 私には難しい内容でした。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 一番大事なコードを忘れていました。 コードは↓になります。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から With Target If .Address = "$B$2" Then If .Value <> "" And .Value < Range("A1") Then .Value = .Value + 1 End If End If End With End Sub 'この行まで どうも失礼しました。m(_ _)m

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 「終了時刻」はそのままの時刻を入力したい訳ですよね? VBAになってしまいますが、一例です。 ↓の画像のようにA2セルに「開始時刻」・B2セルに「終了時刻」を入力するとC2セルに「所要時間」が表示されるとします。 C2セルは単純に =IF(COUNTBLANK(A2:B2),"",B2-A2) という数式を入れておきます。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り A2・B2セルに好みの時刻を入力してみてください。m(_ _)m

関連するQ&A