エクセルの時間計算を分単位で処理!勤怠管理の効率化術

スポンサーリンク

エクセルの時間計算を分単位で行う基礎

時間計算

エクセルで時間計算や分単位への変換を行う際、まずは基本的な仕組みを理解することが重要です。一見難しそうに見えますが、ベースとなる考え方を掴んでしまえば、どんな処理にも応用できるようになります。ここでは、その基礎となるシリアル値の概念から、数式や関数を使った具体的な分への変換方法、そして元の時間表記に戻す手順までを順を追って解説します。

シリアル値を用いた時間の基礎

エクセルで時間計算を行う第一歩は、「シリアル値」という概念を知ることです。エクセルは、画面上では「9:00」や「1:30」のように表示していても、内部的にはそのデータを文字ではなく「数値」として持っています。

Windows版のエクセルでは、「1日(24時間)」を整数の「1」としてカウントするルールになっています。つまり、1日は1なので、時間はすべて「1未満の小数」として表現されるわけです。

  • 1日(24時間) = 1
  • 1時間 = 1 ÷ 24 ≒ 0.041666…
  • 1分 = 1 ÷ 1440 (24時間×60分) ≒ 0.000694…

例えば「1:30(1時間30分)」は、エクセル内部では90分を1440で割った「0.0625」という小数になっています。エクセルの時間計算でつまずきやすいのは、この「見た目の表示」と「中身の数値(シリアル値)」のズレを認識できていないことが原因です。この小数の仕組みさえ覚えておけば、その後の計算が格段にスムーズになります。

掛け算を用いて分へ変換する方法

工数管理などで時間を「分単位の整数」として扱いたい場合、一番確実でわかりやすいのが、掛け算を使うアプローチです。先ほどのシリアル値の仕組みを思い出してください。1日は「1」であり、1日は「1440分」でしたね。

つまり、時刻が入ったセルに「1440」を掛けるだけで、総分数を求めることができます。

【例】セルA1に「1:30」が入っている場合

数式: =A1*1440 (または =A1*24*60

結果: 90

この方法はとてもシンプルですが、一つ注意点があります。数式を入力したセルが、自動的におせっかいを焼いて「時刻」の表示形式(例:1:30のまま、など)になってしまうことがあります。その場合は、セルの書式設定を開いて、表示形式を「標準」または「数値」に戻してあげれば、きちんとした整数値(90など)が表示されます。

一部で紹介されることのあるHOUR関数やMINUTE関数を使う方法(=HOUR(A1)*60 + MINUTE(A1))は、24時間を超える時間を計算する際、1日分(24時間)がリセットされてしまうという危険な落とし穴があるため、累計時間の計算などには絶対に使わないようにしましょう。1440を掛ける方法がベストです。

CONVERT関数による高度な変換

1440という数字を直接掛けるのも良いですが、数式を見たときに「これは何から何へ変換しているのか」をもっと分かりやすくしたい場合、エクセルにはCONVERT関数という便利な専用関数が用意されています。

CONVERT関数は様々な単位を変換できる関数で、基本構文は =CONVERT(数値, 変換前単位, 変換後単位) となります。エクセルの時間のシリアル値は「日(day)」を基準としているため、変換前は「”day”」、変換後を「”mn”」(分)に指定します。

【例】セルA1の「1:30」を分に変換する場合

数式: =CONVERT(A1, "day", "mn")

結果: 90

この関数のメリットは、1440という数字(マジックナンバー)を使わないため、誰が後からファイルを見ても「日を分に変換しているんだな」と意図が明確に伝わる点です。チームでファイルを共有する場合などに、非常にスマートな方法ですね。

表示形式で分に変更する手法

ここまでは数式を使って実際の「数値」を変換する方法でしたが、「計算処理に数値が必要なわけではなく、単に画面の見た目だけを分単位にしたい」という場合は、数式を使わずにセルの表示形式(ユーザー定義)を変更するだけで対応できます。

対象のセルを選択して「セルの書式設定(Ctrl + 1)」を開き、「表示形式」タブの「ユーザー定義」を選びます。

種類欄に [m] と入力します。

これにより、「1:30」と入力されていたセルが「90」と表示されるようになります。

ここで重要なのは、「m」を大カッコ「[ ]」で囲むことです。ただの「m」だと、60分で0にリセットされる「時計の分」になってしまいますが、大カッコで囲むと「リセットされない累積の総分数」として表示されます。

【注意点】

この方法は、元のシリアル値(0.0625などの小数)を維持したまま見た目を変えているだけです。そのため、表示は「90」でも中身は小数なので、このセルに直接時給などを掛け算すると、とんでもなく小さな金額になってしまいます。この点はしっかり覚えておきましょう。

算出した分を時間表記に戻す方法

分単位で集計や細かい計算を行ったあと、最終的にレポートに出すために「○時間○分」という元の形式に戻したいこともよくありますよね。分を時間に逆変換するのは、先ほどの逆の手順を踏むだけです。

時間から分への変換が「1440を掛ける」だったので、分から時間への逆変換は「1440で割る」ことで完了します。

【例】セルA1に「90」という数値が入っている場合

数式: =A1/1440

結果: 0.0625 (シリアル値)

この計算でシリアル値に戻るので、あとはセルの表示形式を「時刻(h:mm)」か、ユーザー定義の「[h]:mm」に設定すれば、「1:30」という時間形式で正しく表示されます。

TIME関数(=TIME(0, 90, 0))を使って戻す方法もありますが、TIME関数は「24時間未満」の時刻しか扱えないという重大な弱点があります。24時間以上の月間累計時間などでおかしくなってしまうため、逆変換の際も「1440で割る」方法を使うのが鉄則です。

エクセルの時間計算と分単位変換の応用

時間計算1

基礎を身につけたら、次は実際の業務で直面する応用的な課題に挑戦してみましょう。給与計算のための変換や、労働基準法を考慮した端数処理、さらには夜勤など複雑な計算で起きるエラーの回避策など、実務で即戦力となるテクニックをまとめました。これらの方法を知っておけば、もう時間計算で悩むことはなくなるはずです。

給与計算向けに10進数へ変換する

エクセルの時間計算で一番ミスが起きやすく、かつ影響が大きいのが「時給計算」です。時間は60進法ですが、お金の計算は10進法なので、ここで必ず変換作業が必要になります。

例えば、実働「7:30(7時間30分)」で時給1,000円の場合、そのまま7:30のセルに1,000を掛けても正しい金額にはなりません。エクセルは「7:30」を「0.3125」として認識しているため、312.5円になってしまいます。

これを解決するには、時間のシリアル値に「24」を掛けて、10進数の時間数に変換します。

【例】セルA1に「7:30」と入力されている場合

数式: =A1*24

結果: 7.5

これで「7.5」という10進数の数値が出たので、ここに時給1,000円を掛ければ、無事「7,500円」という正しい支給額が算出できます。パートさんの給与計算や残業代計算などでは絶対に欠かせない必須のロジックですね。

勤怠管理における端数処理と法律

会社のルールによっては、打刻時間を「15分単位」や「30分単位」で丸める処理(端数処理)を行うことがあります。エクセルでは、以下のような関数で簡単に自動化できます。

  • 切り捨て(FLOOR.MATH関数)=FLOOR.MATH(退勤セル, "0:15") → 18:14を18:00にする等
  • 切り上げ(CEILING.MATH関数)=CEILING.MATH(出勤セル, "0:15") → 8:48を9:00にする等
  • 四捨五入(MROUND関数)=MROUND(時間セル, "0:15") → 一番近い単位に丸める

しかし、ここで非常に重要な注意点があります。日々の打刻時間や残業時間に対して、常に「15分未満切り捨て」といった労働者に不利になる丸め処理をすることは、労働基準法の「賃金全額払いの原則」に違反し、原則違法となります。労働時間は1分単位で正確に計算するのが法的な大原則です。

【適法となる例外ケース】

行政通達により、「1ヶ月間の時間外労働などの合計時間」に対してのみ、「30分未満切り捨て、30分以上切り上げ(四捨五入)」の特例が認められています。ただし、これも就業規則にしっかり明記されていることが絶対条件です。

エクセルでいくら完璧な数式を組めても、それが違法な処理であっては意味がありません。システムを作る際は、必ず最新の法令や自社の就業規則と照らし合わせて検証を行ってください。最終的な判断に迷う場合は専門家に相談しましょう。

累計で24時間を超える際の表示法

1ヶ月の勤務時間など、複数日の時間をSUM関数で合計したとき、「明らかに合計時間が少なすぎる」という現象に遭遇したことはありませんか?例えば、8時間+9時間+10時間の合計は本来27時間ですが、エクセル上では「3:00」と表示されてしまうことがあります。

これはエクセルのデフォルトの表示形式(h:mm)が、時計の文字盤と同じように「24時間で0:00にリセットされる」仕様だからです。27時間は「1日と3時間」と解釈され、日付部分が無視されて残り時間の「3:00」だけが表示されている状態です。

これを解決するには、セルの表示形式(ユーザー定義)を変更します。

種類欄に [h]:mm と入力します。

「h」を大カッコで囲むことで、24時間を超えてもリセットされず、「27:00」のようにそのまま累積して表示されるようになります。月間の労働時間を集計するセルなどでは、絶対に忘れてはいけない設定ですね。

日付をまたぐ夜勤の引き算と関数

夜勤のシフトなどで、出勤が「22:00」、退勤が翌朝の「7:00」といった場合、単純に「退勤 - 出勤(7:00 – 22:00)」と引き算をしてしまうと、結果がマイナスになり、セルに「######」というエラーが出てしまいます。

これを回避して、日またぎの労働時間を正確に計算する一番スマートな方法は、MOD関数を活用することです。

数式: =MOD(退勤時刻 - 出勤時刻, 1)

例: =MOD("7:00"-"22:00", 1) → 9:00

MOD関数は割り算の「余り」を求める関数です。エクセルでは時間は1日の小数なので、1で割った余りを求めることで、マイナスになったシリアル値が補正され、翌日への繰り越し分が正しい時間差として算出されるという魔法のような数学トリックです。

IF関数を使って複雑な条件分岐(=IF(退勤<出勤, 退勤+1-出勤, 退勤-出勤))を書くこともできますが、MOD関数の方が式がシンプルでエラーも起きにくいためおすすめです。

エクセルの時間計算を分単位で極める

ここまで、エクセルの時間計算や分単位への変換について、基礎から応用までを解説してきました。いかがだったでしょうか。

「時間は1を基準とした小数である」というシリアル値の原則と、「1日は1440分」という係数さえ覚えておけば、掛け算や割り算で自由自在に単位を変換できるようになります。給与計算のための10進数変換や、24時間表示のリセット回避([h]:mm)、そして日またぎの計算など、実務でよくあるつまずきポイントも、今回紹介したテクニックでクリアできるはずです。

また、端数処理を行う際は、常に労働基準法などのコンプライアンスを意識することも忘れないでくださいね。正確なエクセルの時間計算と分単位の変換スキルを身につけて、毎月の面倒な集計作業をサクッと効率化していきましょう!

タイトルとURLをコピーしました