【Excel】エクセルの日付表示がおかしい原因と直し方(シャープ・1900年・年表示)
Excelで日付を入力したのに「#####」と表示されたり、1900年の日付になったり、年だけが想定と違ったりすると、データが壊れたように感じるかもしれません。
しかし多くの場合、原因は列幅、表示形式、シリアル値、文字列として保存された日付、または1900年の日付システムです。
元の値とセルの表示形式を分けて確認することが、日付表示の問題を早く直す近道になります。
日付表示がおかしいときの確認ポイント
・#####は列幅不足または負の日時の可能性
・1900年表示は日付の基準値や数値入力を確認
・年だけの表示は表示形式の設定を確認
この記事では、Excelの日付表示がおかしい主な原因と、Windows版Excelでの直し方を順番に解説していきます。
エクセルの日付表示を直す基本操作【表示形式と列幅】
| A | B | C |
|---|---|---|
| 日付 | 表示例 | 確認箇所 |
| 2026/9/19 | ##### | 列幅 |
| 2026/9/19 | 2026年 | 表示形式 |
それではまず、日付を正しい見た目へ戻す基本操作について解説していきます。
日付セルを選択し、数式バーに日付らしい値が見えているなら、入力値ではなく見た目だけに問題がある可能性が高いです。
列幅の自動調整
セルに#####が並ぶときは、まず列幅が足りているかを確認しましょう。
日付は表示する文字数が多いため、数値が正しくても列が狭いだけでシャープ表示になります。
たとえばA2に2026年9月19日と入力し、表示形式をyyyy年m月d日にすると、狭い列では全文を表示できません。

列見出しAとBの境界線にマウスポインターを合わせ、左右矢印になった状態でダブルクリックします。
すると、A列は入力済みデータに合わせた幅へ自動調整されます。
複数列を同時に直す場合は対象列を選択してから、ホームタブの書式、列の幅の自動調整を選んでも構いません。
【操作のポイント】#####が見えたら、最初に列境界のダブルクリックを試します。
日付表示形式の再設定
列幅を広げても年だけ、月だけ、または数字だけに見える場合は、表示形式を設定し直します。
日付セルを選び、ホームタブの数値グループにある表示形式の一覧から短い日付形式または長い日付形式を選択してください。

より細かく指定するなら、セルを右クリックしてセルの書式設定を開き、表示形式タブの日付またはユーザー定義を利用します。
日本でよく使う見た目なら、yyyy/m/d、yyyy年m月d日、ggge年m月d日などが候補です。
セルの値を変更せず、表示形式だけを変えられることがExcelの日付機能の特徴です。
表示形式の例
yyyy/m/d は 2026/9/19
yyyy年m月d日 は 2026年9月19日
m/d は 9/19
【操作のポイント】日付として使うデータは、文字列ではなく日付の表示形式で整えます。
数式バーとセルの値の確認
セルに見える文字だけで判断せず、対象セルをクリックして数式バーも確認しましょう。
表示が2026年でも数式バーに2026/9/19と表示されるなら、値は日付として保存され、年だけを出す表示形式が適用されている状態です。
反対に、数式バーにも2026年9月19日という文字列が左寄せで入っている場合は、日付計算に使えない文字列かもしれません。
セルの表示位置も判断材料になりますが、最終的には数式バーと数式バー左側の表示形式を確認すると原因を切り分けやすくなります。
【操作のポイント】見た目と実際の値が一致しないときは、数式バーを基準に確認します。
シャープ表示の原因【列幅と負の日時】
| A | B | C |
|---|---|---|
| 開始日時 | 終了日時 | 経過時間 |
| 2026/9/19 10:00 | 2026/9/19 9:00 | ##### |
続いては、#####になる原因と対処法を確認していきます。
日付列が狭い場合

#####の最も多い原因は、日付または時刻を表示する列の幅不足です。
2026/9/19なら収まっていても、2026年9月19日土曜日や2026/9/19 15:30まで表示する形式へ変えると、必要な横幅は増えます。
列幅を広げるほか、表示形式をyyyy/m/dのように短くする方法もあります。
印刷用の表で列幅を変えられない場合は、年を省略するm/dや、時刻を省略するyyyy/m/dへ変更するのも実務的な対処です。
【操作のポイント】列幅と表示形式はセットで調整し、表全体の読みやすさを保ちます。
終了時刻が開始時刻より前の場合
時刻の差を計算したセルが#####になる場合は、計算結果が負の時間になっていないかを確認します。
たとえばA2に10:00、B2に9:00を入力し、C2に=B2-A2と入力すると、結果はマイナス1時間です。

標準的な1900年の日付システムでは、負の日時を通常の時刻形式で表示できず、#####となることがあります。
日またぎを含む経過時間の数式例
=MOD(B2-A2,1)
開始時刻が23:00、終了時刻が翌日の1:00でも、結果を2時間として扱えます。
結果セルの表示形式は[h]:mmに設定すると、24時間を超える累計時間も正しく確認できます。
【操作のポイント】時刻差で#####が出たら、終了時刻と開始時刻の前後関係を確認します。
日付計算のエラー確認
日付の足し算や引き算をしているセルでは、参照先の空白、文字列、または誤った日付が原因になることもあります。
開始日から終了日までの日数を求めるなら、A2を開始日、B2を終了日として、C2に=B2-A2を入力します。
この数式の結果が負になると、日数の表示は数値で見えても、日時表示へ変更した途端に#####となる場合があります。
計算用セルは標準または数値形式で結果を確認してから、日付や時刻の書式を設定するとミスを発見しやすいでしょう。
【操作のポイント】計算後に表示形式を変える前に、結果の正負と参照セルを確認します。
1900年表示の原因【シリアル値と日付システム】
| A | B | C |
|---|---|---|
| 入力値 | 日付形式の表示 | 意味 |
| 1 | 1900/1/1 | 日付の連番 |
| 0 | 1900/1/0付近 | 基準日前後 |
続いては、1900年が表示される仕組みと修正方法を確認していきます。
| A | B | C | |
|---|---|---|---|
| 1 | 入力値 | 表示形式 | 結果 |
| 2 | 1 | yyyy/m/d | 1900/1/1 |
| 3 |
➤ 1900年の日付になります
Excelの日付シリアル値
Excelでは日付を文字としてではなく、連続した整数で管理しています。
一般的なWindows版Excelの1900年日付システムでは、1900年1月1日を1として、その翌日を2、その次の日を3というように数えます。
そのため、セルへ1と入力したあとに日付形式を指定すると、1900年1月1日として表示されます。
1900年が出る現象は、日付が勝手に変更されたのではなく、小さい数値を日付として表示している状態であることが少なくありません。
日付シリアル値の考え方
日付シリアル値 = 基準日からの経過日数
時刻は1日を1とした小数で管理されます。
【操作のポイント】1900年表示では、セルの元の数値と表示形式を確認します。
数値を日付形式にした場合
売上件数、日数、コード番号などの数値列へ、誤って日付の表示形式を設定すると1900年の表示になりやすくなります。
対象セルを選択してホームタブの数値グループを開き、標準または数値に変更してください。
たとえば入力値が25で、表示が1900年1月25日となるなら、25という件数を日付として読ませている可能性があります。
日付ではないデータなら、セルの書式設定で標準を選べば25のような本来の数値表示へ戻ります。
もし25日後の日付を求める意図なら、基準日がA2にあるとして=A2+25のように計算する必要があります。
【操作のポイント】数値そのものと、基準日から何日後なのかを混同しないようにします。
1900年日付システムの設定
ブック間で日付をコピーしたときに日付が大きくずれる場合は、日付システムの違いも確認対象です。
Excelには通常の1900年日付システムのほか、主にMac環境との互換性で使われる1904年日付システムがあります。
Windows版Excelでは、ファイル、オプション、詳細設定へ進み、このブックの計算方法にある1904年から計算するの項目を確認できます。
この設定を不用意に切り替えると、既存の日付が約4年ずれて見えるため注意が必要です。
設定変更は新規の空ブックや、日付システムの違いを把握しているブックでのみ慎重に行うのが安全です。
【操作のポイント】日付システムは表示の調整ではなく、ブック全体の基準に関わる設定です。
年だけ表示される原因【ユーザー定義書式】
| A | B | C |
|---|---|---|
| 実際の値 | 表示形式 | セルの見た目 |
| 2026/9/19 | yyyy | 2026 |
続いては、年だけが表示される原因と、年月日を戻す設定を確認していきます。
yyyy形式の確認
日付セルに2026と年だけが見える場合、ユーザー定義の表示形式がyyyyになっていることがあります。
セルを選んでCtrlキーと1キーを同時に押すと、セルの書式設定を直接開けます。
表示形式タブのユーザー定義で種類がyyyyなら、年月日を隠して年だけを表示する設定です。
yyyy/m/dへ変更すれば、同じ日付データを2026/9/19のように表示できます。
yyyyは年、mは月、dは日を表します。
mmとddを使うと、月日を2桁でそろえた2026/09/19という表示になります。
【操作のポイント】yyyyは値ではなく、見せる要素を年だけに絞る書式です。
和暦と西暦の表示形式
和暦表示になっているために年の認識がずれる場合もあります。
表示形式がggge年m月d日なら、令和8年9月19日のように元号を含めて表示されます。
西暦へ戻したいときは、yyyy年m月d日またはyyyy/m/dを選択してください。
和暦と西暦を切り替えても、日付の実値は変わらず、表示方法だけが変化します。
一覧表で西暦と和暦が混在すると検索や集計で誤解が生じやすいため、列単位で表記ルールを統一するとよいでしょう。
【操作のポイント】帳票の用途に合わせて和暦と西暦を統一します。
日付を年単位で集計する数式
年だけを表示したい目的が集計なら、単に表示形式を変えるだけでなくYEAR関数を使う方法があります。
A列の1行目を日付、B列の1行目を年とし、A2に2026/9/19が入力されている場合、B2には次の数式を入力します。
=YEAR(A2)
結果は2026という数値になり、月日を除いた年としてピボットテーブルやSUMIFS関数の条件にも利用しやすくなります。
下方向へオートフィルするときは、B2右下のフィルハンドルを下へドラッグします。
見た目だけ年にするならyyyy、計算用に年を取り出すならYEAR関数と使い分けましょう。
【操作のポイント】表示用の書式と集計用の年データを目的別に分けます。
文字列の日付を修正する方法【変換と数式】
| A | B | C |
|---|---|---|
| 元データ | 変換後 | 判定 |
| 2026.09.19 | 2026/9/19 | 日付値 |
続いては、文字列として保存された日付を正しい日付データへ変換する方法を確認していきます。
左寄せ表示とエラー表示
日付らしい文字がセル内で左寄せになり、計算しても結果がおかしいときは、文字列として保存されている可能性があります。
セル左上の緑色の三角形が表示され、エラーチェックのメニューに数値が文字列として保存されていますと出る場合もあります。
セルを選択し、警告アイコンから数値に変換を選ぶと、形式によっては日付値へ直せます。
ただし、2026年9月19日、2026.09.19、20260919のように元データの表記が異なると、一律変換では正しく扱えない場合があります。
【操作のポイント】左寄せだけで決めつけず、数式バーとエラー表示を合わせて確認します。
区切り位置による日付変換
CSVから取り込んだ日付をまとめて変換したい場合は、区切り位置機能が役立ちます。
変換したいA列を選択し、データタブから区切り位置を開きます。
元のデータ形式は区切り文字によって区切られたデータ、区切り文字は使われていない場合でも、画面を進めて列のデータ形式を日付に設定できます。
年月日の並びに合わせてYMDを選択し、完了をクリックしてください。
月日年の順序が異なる海外形式では、MDYやDMYを誤って選ばないことが重要です。
【操作のポイント】区切り位置では、元データの年月日順と日付形式を必ず一致させます。
DATE関数による日付の組み立て
20260919のような8桁の文字列から日付を作る場合は、DATE関数とLEFT関数、MID関数、RIGHT関数を組み合わせます。
A列の1行目を元データ、B列の1行目を変換日付とし、A2に20260919が入っている場合、B2には次の数式を入力します。
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
LEFT(A2,4)で年、MID(A2,5,2)で月、RIGHT(A2,2)で日を取り出し、DATE関数がExcelで使える日付値に組み立てます。
数式を入力後、B2のフィルハンドルを下へドラッグしてオートフィルを行い、B列の表示形式をyyyy/m/dに設定しましょう。
DATE関数で変換した結果は本物の日付値となるため、並べ替え、日数計算、月別集計にも利用できます。
【操作のポイント】文字列の桁数と年月日の位置を確認してから数式を作成します。
まとめ エクセルの日付表示がおかしい原因と直し方
Excelの日付表示がおかしいときは、まず対象セルの値と表示形式を分けて確認することが大切です。
#####が出る場合は列幅不足を確認し、時刻計算なら負の結果になっていないかも見直しましょう。
1900年が表示される場合は、小さい数値を日付形式で表示していないか、日付シリアル値として扱われていないかを確認します。
年だけが表示されるならyyyyのユーザー定義書式が原因になりやすく、yyyy/m/dへ変更すると年月日を表示できます。
文字列の日付は見た目が正しくても計算できないため、区切り位置、数値への変換、DATE関数などで日付値へ直すことが必要です。
列幅、表示形式、元の値、数式、日付システムの順に確認すると、日付トラブルの多くを落ち着いて解決できます。
入力時点で日付列の表示形式を統一し、年月日を同じルールで管理すれば、集計や印刷での表示崩れも防ぎやすくなるでしょう。