【Excel】エクセルの日付表示がおかしい原因と直し方(シャープ・1900年・年表示)
Excelで日付を入力したのに「#####」と表示されたり、意図しない1900年の日付になったり、年だけがうまく表示されなかったりすると、データが壊れたように感じるかもしれません。
しかし多くの場合、原因はセル幅、表示形式、日付のシリアル値、文字列として保存された値のいずれかです。
日付そのものと、セルに見えている表示は別の要素として扱われるため、原因に合わせて直すことが大切です。
シャープ表示は列幅または日付と時刻の表示形式を確認します。
1900年表示はゼロや小さい数値を日付形式にしていないか確認します。
年表示は表示形式のユーザー定義で調整できます。
この記事では、Windows版Excelを前提に、日付表示がおかしいときの原因を切り分け、入力値を残しながら表示を整える方法を解説します。
エクセルの日付表示を正常に戻す基本操作【列幅と表示形式の確認】
それではまず、日付が正しく見えないセルを安全に直すための基本操作について解説していきます。
| A | B | C |
|---|---|---|
| 1 | 受注日 | 2026/09/21 |
| 2 | 表示結果 | ##### |
セルに#####が出ても、すぐに入力し直す必要はありません。
数式バーに日付や数値が表示されるなら、元データは残っている可能性が高いです。
列幅の自動調整
まずは列の幅が足りているかを確認しましょう。
日付は「2026年9月21日」のように長い書式で表示されると、標準的な列幅では収まりません。

対象列の見出し、たとえばC列の右端にマウスポインターを合わせ、左右矢印の形になったらダブルクリックします。
これで列幅が最も長い内容に合わせて自動調整されます。
列幅を手動で広げる場合は、境界線を右へドラッグしてください。
#####は計算エラーを示す記号とは限りません。
日付や時刻が列に収まらない場合、Excelは内容の代わりにシャープを並べて表示します。
列を広げて日付が見えるようになれば、表示形式の変更は不要です。
セルの表示形式の選択
列幅を広げても見え方が不自然なら、セルの表示形式を確認します。
対象セルを選択し、ホームタブの数値グループにある表示形式の一覧から「短い日付形式」または「長い日付形式」を選びましょう。

すでに日付が入っているセルでも、表示形式を変えるだけなら基本的に元のシリアル値は変わりません。
日付の見た目だけを整えたいときは、再入力より表示形式の変更が適しています。
年だけを表示したいケースでも、まず日付として正しく認識されていることを確認してから書式を変える流れが安全です。
【操作のポイント】日付が表示されないセルを複数選択してから書式を変更すると、同じ表示ルールをまとめて適用できます。
数式バーとステータスバーの確認
セルの中身が日付なのか、文字列なのかを見分けるには数式バーを使います。
対象セルを一度クリックし、数式バーに「2026/9/21」や「2026-09-21」といった日付が見えるか確認してください。
日付形式のセルでは、数式バーの内容とセル上の表示が異なることがあります。
一方、セル左上の緑色の三角が表示され、文字列として保存されている旨の警告が出る場合は、日付に見える文字が計算用の日付として扱われていない可能性があります。
この段階でコピーと貼り付けを繰り返すと、意図せず文字列へ変換される場合もあります。
【操作のポイント】修正前に数式バーを確認し、表示の問題か値の問題かを分けて考えることが近道です。
シャープ表示の原因と対処法
続いては、日付セルに#####が表示される原因を確認していきます。
| 確認項目 | 主な原因 | 対処 |
|---|---|---|
| 列幅 | 日付が収まらない | 列幅の自動調整 |
| 数式結果 | 負の日時 | 計算式を見直す |
シャープ表示には、単純な列幅不足と、日付計算の結果に問題があるケースがあります。
日付書式と列幅不足
最も多い原因は、日付の表示形式に対して列が狭すぎることです。
たとえばC2に「2026/09/21」が保存されていても、書式が「yyyy年m月d日」の場合は、表示に必要な横幅が増えます。

列見出しの境界をダブルクリックしても改善しないときは、ホームタブの表示形式を「yyyy/m/d」など短い形式へ切り替える方法があります。
データの値を変えずに表示だけ短くできる点が、書式変更の利点です。
「yyyy/m/d」は2026/9/21のように表示します。
「yy/m/d」は26/9/21のように西暦下2桁で表示します。
「m/d」は9/21のように月日だけを表示します。
負の日時計算

日付の差を計算したセルで#####が出る場合は、計算結果が負の日時になっていないか確認します。
たとえば開始日がB2、終了日がC2で、D2に「=C2-B2」と入力したとします。
終了日より開始日が後の日付なら、D2の結果はマイナスになります。
=C2-B2
この式は終了日から開始日を引き、経過日数を計算します。
標準の1900年日付システムでは、負の日時を日付や時刻の形式で表示できず、#####になることがあります。
日数差を扱うなら、開始日と終了日の順番を確認することが重要です。
負の値を許容したい場合は、日付ではなく数値として結果を表示する方法や、IF関数で条件分岐する方法を検討しましょう。
【操作のポイント】日付の差を出す式は、結果セルを「標準」へ一時的に変更すると、負の数値かどうか確認しやすくなります。
時刻を含む値の表示
日付と時刻を一緒に扱うセルでは、想定以上に表示が長くなることがあります。
「2026/09/21 13:45:00」のような値に日時書式を設定すると、日付だけの場合より列幅を多く必要とします。
時刻まで必要ないなら、表示形式を「yyyy/m/d」にするだけで画面上は日付だけにできます。
時刻を切り捨てた値そのものが必要なら、A2に日時がある場合はINT関数を使う方法があります。
=INT(A2)
INT関数は日時の整数部分だけを取り出します。
Excelでは日付が整数、時刻が小数として保存されるため、整数部分は日付に相当します。
数式を入力したセルには、日付の表示形式を設定してください。
【操作のポイント】表示だけ日付にするのか、時刻を除いた新しい値を作るのかを目的別に選びます。
1900年表示とシリアル値の仕組み
続いては、入力した覚えのない1900年の日付が表示される仕組みを確認していきます。
| 入力値 | 日付形式での例 | 意味 |
|---|---|---|
| 1 | 1900/1/1 | 日付の連番 |
| 0 | 1900/1/0など | ゼロの表示 |
Excelは日付を文字ではなく連続した数値として管理しています。
そのため、数値の0や1に日付書式を付けると、1900年付近の日付に見えることがあります。
| A | B | C | |
|---|---|---|---|
| 1 | 売上 | 日付 | |
| 2 | 0 | 1900/1/0 | |
| 3 |
日付の連番管理
Excelの標準的な日付システムでは、1900年1月1日を起点付近として日付を連番で扱います。
たとえば2026年9月21日にも、画面には見えない大きな整数が対応しています。
日付に1を加えると翌日になり、日付同士を引くと日数差になるのは、この仕組みによるものです。
日付は見た目が文字でも、内部では計算可能な数値として保存されます。
年月日を扱う関数や集計表で結果がおかしいときは、セルの実値を確認すると原因が分かりやすくなります。
【操作のポイント】ホームタブの数値書式を「標準」にすると、日付に対応するシリアル値を確認できます。
ゼロと空白の違い
1900年表示の原因として、空白だと思っていたセルに0が入っているケースもあります。
数式が条件に合わないときに0を返す設定になっていると、そのセルへ日付形式を適用した際に1900年の日付として表示されます。
たとえばA2が空白なら空白、それ以外なら日付を返したい場合は、次のようにIF関数を使えます。
=IF(A2=””,””,A2)
A2が空欄なら空欄文字列を返し、空欄でなければA2の値を表示する式です。
1行目にヘッダーがあり、A列に受注日を入力する表なら、A2から数式を入力して下方向へオートフィルでコピーします。
0を表示しない処理と、日付を空欄にする処理は区別して設計しましょう。
【操作のポイント】数式セルの1900年表示は、まず数式バーで0が返っていないか確かめます。
1900年日付システムの注意点
Excelには1900年日付システムと1904年日付システムがあり、通常のWindows版Excelでは1900年日付システムが使われます。
異なる設定のブック間で日付をコピーすると、日付がずれて見えることがあります。
Mac版Excel由来のブックや、長年使われているテンプレートを扱う場合は、ファイルのオプションにある日付システムの設定も確認対象です。
ただし、日付システムを変更するとブック内の既存日付へ広く影響する可能性があります。
単一セルの不具合を直す目的で、安易にブック全体の日付システムを切り替えないことが大切です。
【操作のポイント】1904年日付システムの変更は、共有ファイルや集計ファイルでは事前確認を行ってから実施します。
年表示とユーザー定義の設定
続いては、日付から年だけを表示する書式設定について確認していきます。
| 元の日付 | 表示形式 | 表示例 |
|---|---|---|
| 2026/09/21 | yyyy | 2026 |
| 2026/09/21 | yyyy”年” | 2026年 |
年だけを見せたい場合でも、元セルから月日を削除する必要はありません。
表示形式を変えれば、日付データを保ったまま画面上の見え方だけを年表示へ変更できます。
yyyyによる西暦表示
対象セルを選択し、Ctrlキーと1キーを押してセルの書式設定を開きます。
表示形式タブの分類からユーザー定義を選び、種類の入力欄にyyyyと入力してください。
2026年9月21日という値なら、セルには2026と表示されます。
yyyyは年を4桁で表示する書式記号です。
月別や日別の集計にも同じ元データを利用できるため、データベースとして日付を維持したい表に向いています。
【操作のポイント】年だけに見えても、数式バーに元の日付が残っていれば日付データを保持できています。
年の文字を付ける書式
報告書や印刷用の一覧では、2026ではなく2026年と表示したい場合があります。
このときはユーザー定義の種類へyyyy”年”と入力します。
yyyy”年”
yyyyは西暦4桁を表し、二重引用符で囲んだ年は固定文字として表示されます。
月まで表示するならyyyy”年”m”月”、年月日まで表示するならyyyy”年”m”月”d”日”を使えます。
書式に文字を追加しても、計算用の値は日付のままです。
見出し用の表記と集計用の値を一つのセルで両立できる点がユーザー定義の便利なところです。
【操作のポイント】固定文字は半角の二重引用符で囲み、書式記号と区別して入力します。
YEAR関数で年の数値を取り出す方法
年を表示するだけでなく、年ごとに集計したい場合はYEAR関数で別列へ年の数値を取り出します。
1行目がヘッダーの表で、A列が受注日、B列が年という構成なら、B2に次の数式を入力します。
=YEAR(A2)
YEAR関数はA2の日付から年の部分だけを数値として返します。
B2の右下にあるフィルハンドルを下へドラッグするか、ダブルクリックしてオートフィルを実行します。
年の列を作れば、ピボットテーブルやSUMIFS関数で年度別の集計をしやすくなります。
YEAR関数の結果は日付ではなく数値なので、通常は日付書式を設定しません。
【操作のポイント】見た目だけ年にするなら表示形式、年を条件や集計に使うならYEAR関数という使い分けです。
文字列の日付と入力規則の確認
続いては、日付らしく見える文字列が計算や並べ替えで正しく扱われない場合を確認していきます。
| 入力例 | 状態 | 対応 |
|---|---|---|
| 2026/9/21 | 日付として認識 | 書式のみ変更 |
| ‘2026/9/21 | 文字列 | 日付へ変換 |
セルの表示が似ていても、内部のデータ型が違えば並べ替え、日数計算、関数の結果に差が出ます。
文字列として保存された日付
セルの左上に緑色の三角形があり、セル内容が左寄せになっている場合は、日付が文字列になっている可能性があります。
セルを選択すると警告アイコンが出る場合があり、そのメニューから数値へ変換を選べることがあります。
変換後は日付形式を設定し直し、数式バーとセルの配置を確認しましょう。
文字列の日付は見た目が正しくても、日付差の計算や時系列の並べ替えで問題になりやすいです。
【操作のポイント】先頭にアポストロフィが付いた入力は文字列として扱われるため、削除してから日付へ変換します。
区切り位置による変換
外部システムからコピーした日付が大量に文字列になっている場合は、区切り位置の機能で変換できることがあります。
対象列を選択してデータタブの区切り位置を開き、区切り文字の設定を進めた後、列のデータ形式で日付を選択します。
元データが月日年の順なのか、年月日の順なのかに合わせて形式を選ぶことが重要です。
変換前の列は複製しておくと、予想外の変換結果になった場合でも比較できます。
【操作のポイント】年月日の並び順が曖昧な文字列は、数件だけ先に試して結果を確認してから一括変換します。
入力規則による日付の統一
入力する人が複数いる表では、日付の表記ゆれを防ぐことも重要です。
対象範囲を選択し、データタブからデータの入力規則を開き、入力値の種類で日付を選択します。
開始日と終了日を設定すれば、許可範囲外の日付を入力したときに警告を出せます。
日付の入力規則は、後から表示を直す作業を減らす予防策になります。
ただし、入力規則は既存の誤ったデータを自動修正する機能ではありません。
【操作のポイント】入力規則と表示形式をセットで設定し、入力段階から日付データを統一します。
まとめ エクセルの日付表示がおかしい原因と直し方
エクセルの日付表示がおかしいときは、見えている文字だけで判断せず、セルに保存されている値と表示形式を分けて確認することが基本です。
#####は列幅不足であることが多く、列幅の自動調整や短い日付形式への変更で解消できます。
1900年の表示は、0や小さい数値へ日付書式が設定されていることが主な原因です。
年だけを表示したいときはyyyyやyyyy”年”のユーザー定義書式を使い、年別の集計に使うときはYEAR関数で別列へ数値を取り出しましょう。
文字列として保存された日付は、見た目が整っていても計算や並べ替えに影響します。
列幅、表示形式、数式バー、データ型の順に確認すれば、日付表示のトラブルは落ち着いて切り分けられます。
修正前に元データを複製し、特に共有ファイルでは日付システムや表示形式を一括変更する影響にも注意しながら、正しい日付管理につなげていきましょう。