なぜExcelは時間の計算をした時に合わなくなるの?原因はオートフィル?またその対策は?

広告

Excelの時間ですが、見た目は同じですが実は中身の数値が若干異なっている場合があることをご存じでしょうか。

今回は、Excelマジックというのでしょうか。
時間を計算していてなぜか計算が合わない…という方にの参考になる記事だと思います。

以下のような人におすすめです。

  • Excelで時間の計算をしている人
  • 時間の計算が合わない人
  • 時間のガントチャートを作ろうとしている人

今回の記事はデスクワーク改善.comさんの記事を参考にしています。

Excelで時間の計算をした時に合わなくなる現象

今回、時間のガントチャートを作っている時に現象に気づきました。

Excelで時間の計算をした時に合わなくなる現象

本来ならばガントチャート部分の色は30分だけのはずが40分塗られている現象になりました。
原因を探していると、同じ時間であっても中の数値(シリアル値)が違うことがわかりました。

10:20は左がTIME関数を使った計算+オートフィル右が手入力+オートフィルです。

手入力でも計算でもない。オートフィルに問題がある

最初は手入力とTime関数の計算による違いだと思っていました。
ですが、検証したところ手入力と計算で出した時間は同じ値であることがわかりました。

検証方法は以下の方法で行いました。

  • 手入力:0:00、0:10…23:50、0:00と手入力
  • 計算:0:00+Time関数(0,10,0)中の数値を10、20…1440と計算
  • 手入力+オートフィル:0:00、0:10入力後、翌0:00までオートフィル
  • 計算+オートフィル:0:00+Time関数(0,10,0)、0:10Time関数(0,10,0)でオートフィル

結果は手入力と計算は同じ値で、オートフィルしたものが値が異なるということがわかりました。

特に値が異なるのが、計算+オートフィルの値でした。
全体図は下記のボタンよりダウンロードできるようにしておりますので、ご覧ください。

対策:オートフィルする場合はvalu&Text関数を値を調整

とは言っても、オートフィルを使わないのは非常に面倒です。
オートフィルをしても値がずれないようにするための方法がValue関数とText関数を使う方法です。

実際にValue関数とText関数を使うと下図の様になります。

Value関数とText関数を使うことで、直接入力した時の値(シリアル値)にすることが可能となります。

使用方法はText関数内でTime関数を使用し、Value関数で閉じてあげます。
=Value(Text(時間+Time(0,10,0),”h:mm”))

あとがき

いかがでしたでしょうか。
今回は、なぜExcelは時間の計算をした時に合わなくなるの?原因はオートフィル?またその対策は?をお届けしました。

  • 時間オートフィルする際は注意必要シリアル値手入力計算違う場合がある
  • オートフィルする場合はValue関数とText関数を使って手入力した時と同じ値にする

私自身、時間のガントチャートを作っていて今回気づくことができましたが、まさかオートフィルした時と手入力または計算した時のシリアル値が異なっていることなんて知りませんでした。
一つ勉強になって良かったです。

コメント