日付や時刻が全部#になってしまう
日付や時刻が表示されるはずのセルが、すべて#になってしまう現象の、原因と対策についてです。
ケース1:幅がたりない
セル幅(列幅)が狭いためです。
原因と対処を掘り下げていきましょう。
原因
書式が日付や時刻になっているセルが、入力内容に対してセル幅がたりないと、すべて#で埋められてしまいます。
もう少し細かく言うと、セルの内容が数値のみで、書式が文字列でない場合、幅が狭いと#になります。
対処
幅が狭いので、幅を広げましょう。
または書式設定などを使って、セル内に収まるように調整しましょう。
(たとえば2020/1/1→R1.1.1や1/1になるような書式設定)
参考までに、原因で紹介した######になる図の列幅広げるとこうなります。
ちなみに、例に2012/11/21日付を選んだ理由はわかりません。選んだ私本人がわからないと言っているのでわかりません。2012年ってなんやねん。そして図を直すのが面倒なので押し通しましたすんません。
ケース2:負数
幅は足りてるはずなのに######になる場合もあります。
原因
じゅうぶんな横幅を確保しているのに、まだ###で表示される場合は、入力されてる内容が負数(マイナス)になっていないかを確認してみましょう。
画面上の編集エリアをチェックしたり、いちど書式を標準にすれば、大抵見つかります。
この事象は、日付や時刻の計算、とくに時間の引き算をする時によく発生します。
一見問題ない式でも、書式設定で隠れてる日付情報がよく悪さをします。
例えば下図のように、同じ10:00-5:00でも、正常に計算される場合と、######になってしまう場合があるなど。
このように、一見すると10時-5時=5時となるはずの計算式なのに、実は日付情報が隠れていて、1900/1/0 10:00-2020/1/1 5:00という計算式になっていて、あきらかに大きすぎる時間を引いてしまって結果マイナスとなっている。なんて事が少なくありません。
ちなみにエクセルの日付や時刻については、エクセル内部では数値として扱われており、詳しくは別記事にまとめてありますので、興味がありましたらぜひ参考にしてみてください。
対処
関係しているセルの書式設定を、標準や日付込みに変更し、負数になってしまっている原因を突き止め、手で潰していくしかないですね。
ケース3:1万年以上
幅も足りていて、負数でもないのに、######と表示される事があります。
それは1万年以上の日付を指定した場合です。
原因
エクセルは9999/12/31が最大の日付であり、10000/1/1は日付として扱えません。
試しに、日付に1を掛け算して実数を暴いてみましょう。
このように、9999/12/31はギリギリ日付として扱われるので、1を掛けると実体の数値が計算されました。
ですが、10000/1/1は日付として扱われないので、10000/1/1という文字列に1を掛けてる事になり、計算できずに#VALUE!となってエラーになりました。
それでは今度は実際に日付が大きすぎて######表示される現象を再現してみましょう。
先ほどの実験で、9999/12/31の実体は2958465である事がわかりました。
なので、その1つ上の2958466を日付書式で表示してみましょう。
このように、2958466は日付として扱えないので、######表示となりました。
図だと横幅がギリギリだからのようにも見えますが、広げたところで######表示のままです。
まとめ
時刻や日付が######となってしまったら、まずは横幅を広げてみて、それでもダメなら負数、最後に大きすぎる日付になってないかを疑ってみましょう。
コメント