時間計算 ~ 24時間表示とシリアル値 ~

算は、Excelが最も得意とするところですが、その計算の中でも「時間」の計算ほど利用者に負担のかかる計算はありません。

どういうことかと言えば、Excelが行っている時間計算の「概念」を理解していないと、計算しても値が正確に算出できないからです。

なにもExcelは時間計算が不得意だというわけではありません。我々Excelの利用者の側が、Excelがどのように時間を取り扱っているかを理解しなければならないということです。

言い過ぎかもしれませんが、例えば、アルバイトの給与を計算するための勤務時間の計算などにおいて、まったく異なる勤務時間を算出されたら、どうでしょうか?大変なことになります。

ですので、Excelが時間というものをどのように内部で処理しているかを理解し、トラブルにならないよう時間計算をマスターしておきましょう。

まず、勤務時間計算を例にして、出勤時間と退勤時間を入力して、その差である勤務時間を求めてみましょう。

例えば、セルに出勤時間を「9:00」、退勤時間を「17:00」と入力すると、下図のように自動的に時刻形式の表示になります。

セルに時間を入力したイメージ

この場合、表示形式は「ユーザー定義」に変更され、セルの値は「9:00:00」となり、書式設定の画面でも時刻形式「h:mm」の認識となっていることがわかります。(ユーザー定義について詳しくは、書式のユーザー定義 を参照してください)

「セルの書式設定」画面のイメージ

退勤時間の「17:00」についても同様です。ただし、ここは24時間表記の「17:00」としなければなりません。「5:00」とすると「午前5時」の認識になってしまいます。このことは通常感覚で理解できると思いますが、詳しいメカニズムは後述します。

では、これらの差を計算してみましょう。

単純に「退勤時間」-「出勤時間」を計算するだけです。上の表の例では「=D3-C3」の数式で、「8:00」が求められます。

時間計算をしたイメージ

この計算は正しいでしょうか?

一見、「8時間」であり、正しい計算結果が算出されているように見えます。ところが、思い出してください。このセルは「8時間」を意味しているのではなく、「午前8時」を表示しているのです。書式設定画面も同様に、ユーザー定義「h:mm」で時刻表示になっています。

つまり、この「8:00」は「時刻」であるため、勤務時間という「時間の長さ」を計算する値としては適していないということです。

さらに計算してみましょう。下図のように出勤時間「10:00」、退勤時間「16:00」のデータをもう1行追加して、勤務時間を合計してみます。

時刻を合計したセルの値のイメージ

すると、合計時間は「14:00」となり、これも一見すると正しいように見えます。しかし、同様に「午後2時」を表していることに変わりありません。ということは、もうおわかりのとおり「24時」を超えるとどうなるかが問題なわけです。

ここからさらに、出勤時間「7:45」、退勤時間「19:00」のデータをもう1行追加して、勤務時間を合計してみましょう。

時刻を合計したセルの値のイメージ

すると、合計は「1:15」となりました。本来は「25:15」とならなければなりません。24時を超えたため、時刻が1に戻ったわけです。このことに気づかずに「1:15」をそのまま勤務時間「1時間15分」として利用してしまうと、給与が恐ろしく低くなり、大変なことになります。

この場合はユーザー定義を「[h]:mm」として「h」をカッコで囲み「[h]」とします。

「セルの書式設定」画面のイメージ

すると、下図のように24時間表記にすることができます。(ユーザー定義について詳しくは、書式のユーザー定義 を参照してください)

時刻を合計したセルの値のイメージ

しかし、これでも「24時間表記」に変わったにすぎません。依然としてセルは「時刻」を表示したままで「時間の長さ」を表しているわけではありません。

そのため、これらの値に「時給」を掛けて「日給」を算出するとどうなるでしょうか?時給を「750円」として「8時間」勤務をした計算で「8:00」×「750」を計算してみます。

時刻に時給を掛けた計算のイメージ

すると結果は、「0:00」と表示されます。Excel内部では、時刻である「午前8時」を750倍した計算を行っています。つまり、軽く24時を超えるため表示できなくなっています。

これを24時間表記で表示しなおすと、「6000:00」となります。つまり、時刻「6000時」を意味しています。日給としては「6千円」となるので、これでわからなくもないですが、この意味を理解していないと、分単位の計算をするときに問題が発生してきます。

同様に24時間表記にして3行とも計算すると、下図のようになります。

時刻に時給を掛けた計算のイメージ

時刻表示のままでも一見すると日給計算は正しいように見えますが、3行目のように勤務時間が分単位で刻まれている場合、この計算では誤差が生じてしまいます。

なぜなら、この場合、勤務時間は「11時間15分」で問題ありませんが、「時給」を掛けて日給を計算しているわけですので、「11時間15分」の「15分」を「0.15」時間として計算するのは誤りです。つまり、

時間を計算する場合には「分」を「時間」単位に変換しなければならない

ということになります。そうすると、「15分」は「0.25時間」であり「0.15時間」ではないわけです。そのため、このことを理解していないと時給が低く計算されてしまいます。

実際の計算式は、「11.15×950=10592.5」ではなく「11.25×950=10687.5」となります。ただし、Excelでは自動的に値が調整されるので、上記の例では「11:15×950=10687:30」となっており、若干の誤差が生じる程度で、1円単位では誤差がありません。

このことも時間計算を混乱させる原因となっているように思いますが、「11:15」を「11.15」に打ち換えるなどして計算した場合には、当然数値は大きく異なってくるので注意が必要です。

では、時刻表示をどのように時間単位に変換するのかというと、計算式は簡単ですが、メカニズムを理解するために、まずはExcelが時間をどのように認識しているのかを知っておきましょう。

時刻表示のセルの表示形式を時刻表示から「標準」に戻してみるとわかります。

時刻を標準形式で表示したセルのイメージ

標準形式では、このように「8:00」が「0.33333333」、「6:00」が「0.25」、「11:15」が「0.46875」、「25:12」が「1.05283333」と表示されます。

この数値は、24時間を1とした場合の割合を示しており、例えば、時間を「24」で1周とする円グラフ(12時間で半周)として考えると、1周のうち「0.25」(4分の1)回った時間が「6:00」時となるわけです。

もうおわかりのとおり、当該時間を「24」で割った数(「6:00」時であれば「6÷24=0.25」)になります。24時間を超える時間は「1」以上になりなります。

ただし、「分」を計算する場合は分単位に変換して割り算を行うため、「11:15」の場合は、「(11×60+15)÷(24×60)」となり「0.46875」となります。(「11.5÷24」ではありません)

少々難解ですが、このような値を、

シリアル値

といいます。Excelは時刻や日付をシリアル値で処理しているのです。これが日付の場合は、基準年「1900年1月1日」から何日分にあたるのかがシリアル値になります。

例えば、「1901年1月1日」なら「367」、「2018年3月1日」なら「43160」となります。日付の場合も同様に「標準」形式にすると、シリアル値を表示させることができます。

日付と時刻を合わせて、「2018年3月1日9時30分」は「43160.3958333」という具合です。シリアル値で日付と時間をすべて表現することができるということです。

そして、シリアル値を使うことで数値の計算となり、処理が容易になります。「17:00-9:00=8:00」は「0.783-0.375=0.333」という具合です。

では、このシリアル値を時間単位に変換してみましょう。

時間のシリアル値はその時間を「24」で割った数(もしくは分単位で割った数)ですので、時間単位に変換するためには、

シリアル値に「24」を掛けると時間単位に変換することができる(シリアル値×24)

ことになります。シリアル値の計算は「分」以下が絡むと多少難解になってきますが、単純にシリアル値に「24」を掛けると時間単位に変換できることを覚えておきましょう。

シリアル値を時間単位に変換すると、下図のようになります。

時刻表示をシリアル値と時間単位に変換したイメージ

このように、「8:00」は「8時間」、「6:00」は「6時間」、「11:15」は「11.25時間」、「25:15」は「25.25時間」に変換することができます。この値に時給を掛けることで給与計算(日給)が可能になります。

時刻表示をシリアル値と時間単位に変換したイメージ

下表は、シリアル値と時刻表示、時間単位の対比になります。

シリアル値と時間
時刻表示 シリアル値 時間単位
3:00 0.125 3
12:00 0.5 12
19:30 0.8125 19.5
21:15 0.88541666 21.25
23:45 0.98958333 23.75
24:00 1 24
26:30 1.10416666 26.5

まずは、Excelがシリアル値で処理していることを理解し、時刻表示と時間単位は異なる場合があること、さらに時刻を時間単位に変換するには「24」を掛けるということ、これらは面倒ですが重要な事項になりますので、整理してしっかり覚えておきましょう。

更新履歴

2018年3月1日
ページを公開。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
なし
シリアル値と日付と時刻の関係
www.excel-jiten.net/formula/serial_datetime.html