Excel関数で時間計算をする方法をお探しですね。
広告
Excelの時間計算でつまずかない!足し算・引き算の基本と24時間超えの表示方法
Excelで勤務時間や作業時間を集計していると、「10:00と17:00を足したら27:00じゃなくて3:00になった」「退勤時刻から出勤時刻を引いたら####って表示された」といった謎の現象に遭遇することがあります。
これ、実はExcelが時間を見た目の文字ではなく、「1日=1」という数値(シリアル値)で管理しているために起こるんです。
この記事では、Excelでの時間の足し算・引き算の基本から、24時間以上を正しく表示する方法、シリアル値の考え方まで、初めての人にも分かりやすく解説していきます。
Excelの時間計算、まずは「シリアル値」を理解しよう
Excelで時間計算をうまくやるには、まず「時間は数値として扱われている」ということを知っておく必要があります。
Excelでは日付や時刻を「シリアル値」という数値で管理していて、1日を「1」として扱います。
つまり、24時間が「1」、12時間が「0.5」、1時間が「1/24(約0.0417)」という計算です。
セルには「9:00」とか「18:30」って表示されていても、実は内部では小数の数値として保存されているんですね。
だから、普通の数値と同じように足したり引いたりできるわけです。
例えば、A1セルに「9:00」、B1セルに「2:30」と入力して、C1セルに「=A1+B1」と入力すれば「11:30」と表示されます。
これは「9時に2時間30分を足した」とも考えられますし、「9時間と2時間30分を合計した」とも考えられます。
逆に引き算もできます。
「=B1-A1」のような式を入れると、時刻同士の差、つまり経過時間を求められます。
勤怠管理なら「退勤時刻-出勤時刻-休憩時間」という形で実働時間を計算するのが基本です。
時間のシリアル値は、こんなふうに考えると分かりやすいです。
– 24時間=1
– 12時間=0.5
– 1時間=1/24(約0.0417)
– 1分=1/24/60(約0.000694)
– 1秒=1/24/60/60(約0.0000116)
この仕組みを知っておくと、Excelの時間計算で起きるトラブルの多くを自分で判断できるようになります。
例えば、時間を「時間数」として給与計算に使いたい場合。
単に「8:30」に時給を掛けても、期待した結果にならないことがあります。
なぜなら「8:30」は見た目は8時間30分でも、内部的には「8.5」ではなく「8.5時間分の日数」、つまり約0.354として扱われているからです。
時間数に変換するには、後で説明するように24を掛ける必要があります。
時間を足し算する方法と、24時間以上を表示する設定
Excelで時間を足し算する方法は、基本的には数値の足し算と同じです。
A1に「10:00」、B1に「7:30」と入力されている場合、C1に「=A1+B1」と入力すれば「17:30」と表示されます。
複数の作業時間や勤務時間を合計したい場合は、SUM関数を使って「=SUM(A1:A10)」のように集計できます。
ここまでは普通の数値集計とほぼ同じ感覚で操作できますね。
24時間を超えると「3:00」と表示される問題
ただし、合計時間が24時間を超えると、表示上の問題が発生します。
例えば「10:00」と「17:00」を足すと、実際の合計は27時間のはずですが、セルの表示が通常の時刻形式になっていると「3:00」と表示されることがあります。
これは計算が間違っているわけではありません。
24時間を1日として扱い、表示上は1日分(24時間)を省略して残りの3時間だけを表示しているんです。
セルの中には27時間分の値がちゃんと入っているのに、表示形式がそれを見せていない状態だと考えると分かりやすいです。
24時間以上を「27:00」と表示する方法
24時間以上の合計時間を「27:00」「125:30」のように表示したい場合は、セルの表示形式を変更します。
1. 合計結果を表示するセルを選択
2. 右クリックから「セルの書式設定」を開く(またはショートカットキー「Ctrl+1」)
3. 「表示形式」タブで「ユーザー定義」を選ぶ
4. 種類の欄に「**[h]:mm**」と入力(秒まで表示したい場合は「**[h]:mm:ss**」)
**ポイントは、hを角かっこ[ ]で囲むこと**です。
通常の「h:mm」は、24時間を超えた部分を日数として扱い、時刻部分だけを表示します。
一方で「[h]:mm」は、日数に相当する部分も時間に換算して累計表示してくれます。
勤怠表や作業時間表の月間合計には「[h]:mm」を使うのが基本です。
合計が24時間を超える可能性があるセルには、最初からこの表示形式を設定しておくと、途中で「計算が合わない!」と混乱しにくくなります。
ちなみに、時間を直接数式に入れたい場合は、ダブルクォーテーションで囲んで「=A1+”1:30″」のように書く方法もあります。
また、TIME関数を使って「=A1+TIME(1,30,0)」とすれば、1時間30分を足す意味になります。
ただし、TIME関数は時刻を作る関数なので、24時間以上の時間指定には向かない場面があります。
長時間の加算や月間合計では、セルに時間を入力してSUM関数で集計し、表示形式を「[h]:mm」にする方法が実務では扱いやすいです。
時間を引き算する方法と、日をまたぐ・マイナスになる場合の対処法
時間の引き算では、開始時刻と終了時刻から経過時間を求める使い方がよくあります。
例えば、A2に出勤時刻「9:00」、B2に退勤時刻「18:00」、C2に休憩時間「1:00」が入力されている場合、D2に「=B2-A2-C2」と入力すると実働時間は「8:00」になります。
Excelでは時刻も数値なので、このような引き算は自然に計算できます。
勤務表、作業ログ、予約時間の管理などでは、この形を基本として覚えておくと便利です。
日をまたぐ勤務で「####」と表示される問題
注意が必要なのは、**日をまたぐ勤務や作業**です。
例えば、出勤が「22:00」、退勤が翌日の「5:00」の場合。
単純に「=5:00-22:00」と計算するとマイナスになり、セルに「####」と表示されることがあります。
Excelの標準設定では、マイナスの時刻を時刻形式でうまく表示できないためです。
この場合は、退勤時刻が出勤時刻より小さいときに1日分(つまり「1」)を足すことで、正しい経過時間を求められます。
日をまたぐ勤務時間の計算式
日をまたぐ可能性がある勤務時間では、次のような式が実用的です。
“` 一方で、「今月の勤務時間が先月より4時間少ない」といった差分を「-4:00」と表示したいケースもあります。 この場合、Excelの通常の時刻表示ではマイナス時間をそのまま表示できず、「####」になりがちです。 計算結果をさらに計算に使う必要がないなら、TEXT関数とABS関数を組み合わせて文字列として表示する方法があります。 例えば、A2からB2を引いた差を符号付きで見せたい場合は、こんな式です。 “` Excelの時間計算では、「8:30」のような表示だけでなく、「8.5時間」「510分」「30600秒」のように**数値へ変換したい**場面があります。 給与計算や工数分析、作業効率の集計では、時刻形式のままではなく、普通の数値として扱える形にしたほうが計算しやすいことが多いです。 ここでもシリアル値の考え方が重要になります。 Excelでは24時間が1なので、**時間数にするには24を掛けます**。 分数にするにはさらに60を掛け、秒数にするにはさらに60を掛けます。 例えば、A1に「8:30」と入力されている場合: – **時間数に変換**:「=A1*24」→ 結果は「8.5」 数式を入力した後に結果が時刻のように表示される場合は、セルの表示形式を「標準」または「数値」に変更してください。 表示形式が時刻のままだと、計算結果そのものは正しくても見た目で誤解することがあります。 時間データから「時」「分」「秒」だけを取り出したい場合は、専用の関数を使えます。 – **時だけ取り出す**:「=HOUR(A1)」 例えば「15:45:30」から時だけを取り出すなら「=HOUR(A1)」で「15」が返ってきます。 ただし、**HOUR関数は24時間を超える累計時間の総時間数を返す関数ではありません**。 例えば「27:30」に対してHOUR関数を使うと、累計の27ではなく時刻部分の3を返すことがあります。 累計時間を数値として扱いたい場合は「*24」を使うのが基本です。 実務で時間計算を安定させるには、**「入力」「計算」「表示」を分けて考える**ことが重要です。 – **入力**:「9:00」「1:30」のようにコロンを使って、Excelが時刻として認識できる形にする 日をまたぐ場合は「+(終了<開始)」のような補正を入れる
- **表示**:24時間以上の累計なら「[h]:mm」、通常の時刻なら「h:mm」、数値として使うなら「標準」や「数値」に切り替える
特に勤怠管理では、月間の合計時間を「[h]:mm」で表示して、給与計算用には別セルで「合計時間*24」によって時間数へ変換する設計が分かりやすいです。
例えば、合計勤務時間が「162:30」の場合、時給計算に使う数値は「162.5」です。
表示されている「162:30」にそのまま時給を掛けるのではなく、Excel内部のシリアル値を時間数に直してから掛けることで、正しい金額を求められます。
Excelでの時間の足し算・引き算は、操作自体は難しくありません。 でも、24時間以上の表示、日をまたぐ引き算、マイナス時間、時間数への変換などでつまずきやすいのは、**見た目の時刻と内部のシリアル値を混同してしまう**ためです。 まずは次の3つを押さえておくと、ほとんどの時間計算に対応できます。 1. **1日=1**(24時間=1という考え方) 正しい表示形式と数式を使い分ければ、勤怠表や作業時間の集計もExcelで正確に管理できます。 ぜひ試してみてください! 広告
=終了時刻-開始時刻+(終了時刻<開始時刻)
```
例えば、A2に開始時刻、B2に終了時刻がある場合は「**=B2-A2+(B2
=IF(B2-A2<0,"-","")&TEXT(ABS(B2-A2),"[h]:mm")
```
ただし、**TEXT関数で作った結果は文字列**です。
見た目は「-4:00」でも、時間データとしてそのまま集計や再計算に使うには不向きです。
実務では、計算用のセルには数値のまま差分を持たせて、表示用のセルでTEXT関数を使うなど、用途を分けると安全です。
ちなみに、Excelのオプションにある「1904年から計算する」をオンにするとマイナス時間を表示できる場合がありますが、既存の日付データがずれるリスクがあります。
既存のファイルで安易に変更するのは避けたほうがよい設定です。
時間を「時間数・分数・秒数」に変換する方法と実務での注意点
時間数・分数・秒数への変換式
– **分数に変換**:「=A1*24*60」→ 結果は「510」
– **秒数に変換**:「=A1*24*60*60」→ 結果は「30600」HOUR関数・MINUTE関数・SECOND関数の使い方
– **分だけ取り出す**:「=MINUTE(A1)」
– **秒だけ取り出す**:「=SECOND(A1)」実務で時間計算を安定させるコツ
– **計算**:足し算・引き算・SUM関数を使う。まとめ
2. **24時間以上は[h]:mm**(角かっこで囲む)
3. **時間数にするなら*24**(シリアル値から時間数への変換)
