Excel。10:00に3.5時間を足した結果がおかしいのでどうしたらいいの。
<TIME+INT関数>
次のような経過時間の表をつくってみたら、結果がおかしなことになっています。
A2に10:00と入力してあります。
B2には、3.5時間経過した時間が入力されています。
C2には、開始時間に経過時間を足した結果を表示したいので、
=A2+B2
という数式を設定したのですが、結果がおかしなことになっています。
またオートフィルで数式をコピーしたところ、C3も、おかしい結果になっています。
原因は、シリアル値という考え方が抜けていることです。
Excelでは、日付や時間をシリアル値という数値で管理しています。
C2をクリックして、数式タブにある、数式の検証をつかうとよくわかります。
数式の検証をクリックします。
検証ボタンをクリックすると、10:00が、0.41666…となっていることがわかります。
Excelが1日を1としたシリアル値で管理しています。
10時というのは、1/24で1時間なので、1/24*10ということになります。
この値に、単純に3.5を足しても、13.5にはならないことがわかりました。
時間計算は、常にシリアル値を考えないといけないわけです。
つまり、経過時間を次のようにすれば、いいことがわかりました。
経過時間の3.5を3:30と時間に変換することで、単位が揃い、終了時間が正しく求めることができたというわけです。
確かに、結果は求めることができました。
もし、当初のように、3.5としたままで、結果を求めるには、どのようにしたらいいのでしょうか。
TIME関数をつかって、時間に変更することで対応できます。
C2に設定した数式です。
=A2+TIME(INT(B2),(B2-INT(B2))*60,0)
B2を数値から時間に変換するので、TIME関数をつかいます。
TIME関数は、時・分・秒という引数が用意されています。
時は、3.5の3なので、小数点を除いた値をつくりたい。
そこで、INT関数で整数化します。
分は、時と逆で、小数点を求めたいので、B2から整数の値を減算すれば、小数点以下を求めたいので、先程の時で求めた値であるINT(B2)をB2から減算すれば、小数点だけが残ります。
残った小数点に60を掛けます。
60かけるのは、分だからです。
最後の引数の秒は不要ですが、無いとエラーになるので、「0(ゼロ)」を設定します。
これで、経過時間を足した終了時間を求めることができます。