エクセルで時間計算したら結果がおかしい
エクセルで時間を計算したら、思った結果と全然違った・・・なんて時ありませんか?
例えば、10時+10時を計算したら、1051964時になるような。
とにかく表示だけさっさと直したい
書式設定を直しましょう。
何十万時間、何百万時間となっている場合、大抵はここを直せば解決します。
書式設定→ユーザー定義→種類の[h]をhに変える。
もしくは、書式設定→時刻→好きな表記を選ぶ。
とりあえず印刷したりする分には、これで解決となりますが、できれば何故こうなったのか、理由を勉強してみてください。
なんとなくでも知っておくと、ふとした時に役立つことがありますので。
なぜこうなるのか
まずこれを覚えてください。
・エクセルの時刻は、本当の姿は小数である
・エクセルの日付と時刻は、1900/1/0 00:00:00が最小である
そして1900/1/0 00:00:00からカウントされているので、実際の例をあげてみると
1900/1/0 00:00:00 = 0
1900/1/1 00:00:00 = 1
1900/1/2 00:00:00 = 2
1900/1/2 12:00:00 = 2.5
1900/1/3 00:00:00 = 3
1900/1/3 12:00:00 = 3.5
・・・
2020/1/1 00:00:00 = 43831
このように、現在の時間まで、単純に数字を増やしているだけなんです。
それを踏まえて、なぜ10時+10時=1051964時になったのかを紐解いでいきましょう。
10時+10時=1051964時?
まず、見た目上は10時+10時ですが、書式設定のせいで隠れているだけで、実際には日付の情報ももっています。
セルに直接10:00と入力した場合は、エクセルが1900/1/0 10:00:00と判断するのですが、外部からコピーしてきた場合などは、いつの10時なのか、見た目ではわからないんです。
そして、答えの桁がおかしいということは、少なくとも片方は、1900/1/0 10:00:00ではないという事がわかります。
正体を暴く方法は簡単で、10時となっているセルを選択した状態で書式設定の画面を開きましょう。
そして分類から標準を選ぶと、右にサンプルに本当の姿が見えてきます。
これが0.xxxxならば1900/1/0、今回のように大きい数字ならば、他の日付の10時というデータだという事がわかります。
(ちなみに43831.41667は2020/1/1の10時)
こうして確認してみた結果、今回の10時+10時の正体は
1900/1/0 10:00:00+2020/1/1 10:00:00
であることがわかりました。
これを数値になおすと・・・
0.41667+43831.41667(時間部分は、正確には.41666・・・)
となり、答えは43831.83333となり、これは2020/1/1の20時を表す数値になります。
あとはもう書式設定の問題だけになります。
今回1051964時となったもう一つの原因に、書式設定に[h]が使われていたことがあります。
普通のhならば20時と表示されるのですが、カッコ付きのhになると、1900/1/0 00:00:00から純粋に時間をカウントした結果が表示されます。
どういうことかというと・・・
1900/1/0 00:00:00 = 00:00:00
1900/1/1 00:00:00 = 24:00:00
1900/1/2 00:00:00 = 48:00:00
1900/1/3 00:00:00 = 72:00:00
・・・
1901/1/1 00:00:00 = 8808:00:00
・・・
2020/1/1 00:00:00 = 1051944:00:00
ということです。
で、10時+10時=1051964時の話に戻りますが、2020/1/1 00時=1051944時ということは、1051964時=2020/1/1 20時であると逆算することもできるわけです。
まとめると、書式設定で読み替えているだけで、43831.83333=1051964時=2020/1/1 20時ということになりますね!わけわかんねえな!
まとめ
[h]使わなきゃええねん。
いや必要な時は[h]使ってね!
深夜2時を26:00表記したい時とか[h]使ってね!([h]派閥に媚びを売っていく)
コメント