doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

Excelの「1900/1/0」を消す3つの方法|空白セル・計算結果0を一発解決

スポンサーリンク

日付の列に、突然ぽつんと並ぶ 「1900/1/0」。数式は正しいはずなのに消えず、削除しても別のセルにまた現れる——そんな経験はありませんか。これはバグではなく、Excelの「日付=数値」という仕組みから生まれる正常な動作です。この記事では、なぜ「1900/1/0」が出るのかという原因を押さえたうえで、IF関数・TEXT関数・ユーザー定義書式 という3つの解決方法を、状況別に解説します。

Excelの「1900/1/0」を消す3つの方法|空白セル・計算結果0を一発解決のサンプル ▲ Excel サンプル

なぜExcelに「1900/1/0」が表示されるのか

原因を先に理解しておくと、これから紹介する3つの対処法の使い分けが一気にラクになります。

Excelでは日付を「1900年1月1日を1とした連番(シリアル値)」として管理しています。たとえば「2026/7/5」は内部的には 46208 という数値です。問題の「1900/1/0」は、このシリアル値が 0(ゼロ) のときに表示される日付です。つまり、日付の表示形式になっているセルに「0」が入っている状態 を指します。

典型的なのは、空白セルを日付として参照した(=A1 でA1が空欄)ケースや、日付の引き算などで計算結果が0になったケース、CSVや他システムから空の日付を取り込んだケースです。なかでも実務でいちばん多いのは、VLOOKUP/XLOOKUPで空セルを拾って結果が0になるパターンでしょう。いずれもセルの中身は「0」なのに、書式が「日付」なので「1900/1/0」と見えているだけです。ここを押さえると、次の3つの方法のどれを使うべきか判断できます。

方法1:IF関数で空白のときは何も表示しない

もっとも汎用的で確実なのが IF関数 です。「参照元が空白なら空文字を返す」というルールで、根本から「1900/1/0」を防ぎます。

A1の日付をB1に表示したいとき、=A1 と書く代わりに次のようにします。

=IF(A1="","",A1)

「A1が空白なら空文字("")を、そうでなければA1をそのまま表示する」という意味です。計算結果が0になるケースなら条件を「0かどうか」に変えます。

=IF(A1=0,"",A1)

空白と0の両方に備えるなら、次のように書けば万全です。

=IF(OR(A1="",A1=0),"",A1)

ひとつ注意点があります。IF関数が返す ""(空文字)は、見た目は空でも「本当の空白セル」ではありません。そのため COUNTBLANK ではカウントされず、グラフでは0として最低値に描画されることがあります。集計やグラフに使う値では、この点を意識しておきましょう。とはいえ根本対応としては最有力なので、迷ったらまずこの方法 で問題ありません。

方法2:TEXT関数で表示をコントロールする

日付を「2026年7月5日」のように文字列として整形したいときは TEXT関数 が便利です。数値を指定した書式の文字列に変換します。

=TEXT(A1,"yyyy/m/d")

ただしTEXT関数も、A1が空(0)のままだと「1900/1/0」を文字列として返してしまいます。そこでIF関数と組み合わせるのが定番です。

=IF(A1="","",TEXT(A1,"yyyy/m/d"))

「年月日」で見せたい場合は書式部分を変えます。

=IF(A1="","",TEXT(A1,"yyyy年m月d日"))

TEXT関数の結果は 文字列 になる点に注意してください。帳票やラベルなど見た目を整える用途に向きますが、その値でさらに日付計算する用途には不向きです。計算に使うなら方法1を選びましょう。

方法3:ユーザー定義書式で「0」を非表示にする

数式を変えたくない、あるいはセルの値は0のまま残したい——そんなときは ユーザー定義の表示形式 で見た目だけを消せます。

対象セルを選択し、Ctrl + 1(または右クリック →「セルの書式設定」)で書式設定を開きます。「表示形式」タブから「ユーザー定義」を選び、「種類」の欄に yyyy/m/d;;; と入力して「OK」を押すだけです。

ポイントは セミコロンの数と区分の対応 です。ユーザー定義書式は、3つのセミコロンで区切って 4区分 をつくります。

yyyy/m/d ;      ;      ;
  ↓        ↓       ↓      ↓
 正の数   負の数  ゼロ   文字列

つまり yyyy/m/d;;; は、1番目(正の数)だけ日付形式を指定し、3番目の「ゼロ」区分を空欄にする 設定です。これで値が0のときだけ何も表示されなくなります。「セミコロンが3つ=4区分の3番目を空に」と覚えると、数え間違いを防げます。

この方法のメリットは、数式を書き換えずにシート全体の見た目を一括で整えられること。既存の大きな表を後から直すときに重宝します。一方で、あくまで「表示を消しているだけ」で、セルの中身は0のままです。別のセルからそのセルを参照すると、また「1900/1/0」が出る可能性があります。表示だけを整えたいゴール地点のセル向け と考えておきましょう。

3つの方法の使い分けまとめ

方法 向いている場面 結果の型
IF関数 計算にも使う値、根本から防ぎたい 日付(または空白)
TEXT関数 帳票・ラベルなど見た目を整えたい 文字列
ユーザー定義書式 数式を変えず表示だけ消したい 日付(値は0のまま)

基本は IF関数で根本対応、見た目を凝るなら TEXT関数、既存表を手早く直すなら ユーザー定義書式 という順で覚えておけば困りません。

なお、ごくまれに社内の古いブックなどで「1904年日付システム」が使われていると、シリアル値の基準日がずれます。その場合も考え方は同じで、値が0のセルに日付書式がかかっていることが原因です。

結局のところ「1900/1/0」の正体は、日付書式のセルに0が入っていること ——この一点に尽きます。原因さえ押さえておけば、今回の3つの方法のどれを使うべきか、あなた自身ですぐに判断できるはずです。


関連記事

あわせてチェック


この記事を読んだ方におすすめ

[今すぐ使えるかんたん ぜったいデキます! エクセル関数超入門[改訂2版] [ 井…](https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2492/9784297122492_1_3.jpg?_ex=128x128)

[今すぐ使えるかんたん ぜったいデキます! エクセル関数超入門[改訂2版] 井… ¥1,760

井上香緒里 技術評論社イマスグツカエルカンタンゼッタイデキマスエクセルカンスウチョウニュウモンカイテイニハン イノウエカオリ 発行年月:2021年08月13日 予約締切日:2021年08月12日 ペー…

楽天市場で詳細を見る → [今すぐ使えるかんたん ぜったいデキます! エクセル関数超入門[改訂2版] 井…