Excelで文字列の日付を日付に直す方法|並べ替え・期限判定できないときの確認手順

日付に見えるセルでも、Excelでは文字列として保存されていることがあります。文字列のままだと、期限比較や日付計算で期待どおりに扱えない場合があります。

この記事では、元データを残したまま別列へ変換し、Excelが認識できない値は推測で直さず「要確認」にします。ポイントは、見た目ではなく、ISNUMBERで日付値かどうかを確認することです。

完成例|文字列日付だけ変換し、異常値は要確認にする

B列の「元の期限」は変更せず、C列の「変換後の期限」に次の式を入れます。

=IF(B2="","",IF(ISNUMBER(B2),B2,IFERROR(DATEVALUE(B2),"要確認")))

変換後は次の状態になります。日付はすべて説明用の架空データです。

課題 元の期限 変換後の期限 確認結果
課題A 2026/10/01(文字列) 2026/10/01 TRUE
課題B 2026/10/03(文字列) 2026/10/03 TRUE
課題C 2026/10/05(既にExcel日付) 2026/10/05 TRUE
課題D 空欄 空欄 FALSE
課題E 2026/13/01(認識できない文字列) 要確認 FALSE
課題F 2026/10/08(文字列) 2026/10/08 TRUE

確認結果はD2に =ISNUMBER(C2) を入れ、下へコピーした結果です。有効な日付値はTRUE、「要確認」と空欄はFALSEになります。

今回使う架空データ

1行目に見出しを置き、A列を「課題」、B列を「元の期限」、C列を「変換後の期限」、D列を「確認結果」とします。データは2行目から7行目までです。

行 A列:課題 B列:元の期限 入力時の状態
2 課題A 2026/10/01 文字列
3 課題B 2026/10/03 文字列
4 課題C 2026/10/05 既にExcel日付
5 課題D 空欄 空欄
6 課題E 2026/13/01 認識できない文字列
7 課題F 2026/10/08 文字列

検証用のExcelでは、文字列状態を確実に作るために文字列形式のセルへ入力しました。先頭アポストロフィを使って再現する場合も、アポストロフィは文字列の一部としてセルに表示されるものではありません。

まず文字列か日付値か確認する

Excelは通常の日付を、計算に使える数値(シリアル値)として保存します。B2の状態を調べるには、空いているセルへ次の式を入れます。

=ISNUMBER(B2)
  • TRUE:B2は数値です。日付として入力されたセルも通常はこちらになります。
  • FALSE:B2は数値ではありません。文字列や空欄などが該当します。

ただし、TRUEだけでその数値が業務上正しい日付だと保証されるわけではありません。元資料がある場合は値も照合してください。

文字列は左寄せ、日付値は右寄せに見えることがありますが、配置や表示形式は変更できます。左寄せ・右寄せなどの見た目だけで、文字列か日付値かを確定しないでください。

表示形式を日付へ変えるだけでは直らない場合がある

セルの表示形式は「値をどう見せるか」の設定です。元の値が文字列なら、表示形式を「日付」に変えただけでは日付値へ変換されない場合があります。

一方、DATEVALUEで変換した結果は数値です。表示形式が「標準」のままだと、46296のようなシリアル番号で見えることがあります。この場合は、値の変換後に日付の表示形式を設定します。

元の期限を残して別列へ変換する

  1. B列の「元の期限」はそのまま残します。
  2. C2を選択します。
  3. 次の式を入力し、Enterキーを押します。
  4. C2の式をC7までコピーします。
=IF(B2="","",IF(ISNUMBER(B2),B2,IFERROR(DATEVALUE(B2),"要確認")))

最初からB列を上書きしないのは、変換前後を比較し、誤変換や認識不能な値を確認できるようにするためです。確認後に元列を置き換える運用もありますが、まずは別列で結果を確かめるほうが安全です。

式の意味を確認する

B2が空欄なら空欄を返す

IF(B2="","",...)

空欄を0、1900年の日付、今日、未着手日などへ自動変換しません。空欄が許されない業務では、日付変換とは別に入力ルールを決めます。

変換後のC列は、空欄に見えても数式が入っています。=ISBLANK(C2)は、この式が空文字を返したセルではFALSEになります。期限を必須として未入力を確認する運用なら、空セルかどうかだけでなく、この例の変換結果が空文字か、日付値か、「要確認」かを分けて確認します。

=IF(C2="","期限未入力",IF(ISNUMBER(C2),"日付値あり","要確認"))

半角・全角スペースだけの値は、今回の変換式では空文字とは別に「要確認」になりました。元の期限を残し、空文字を返す数式と、スペースなどの入力異常を混ぜないようにします。「日付値あり」も業務上正しい期限の保証ではありません。期限不要で空欄を許す運用では、未入力を一律にエラー扱いしません。

空セルの判定については、MicrosoftのIS関数の説明も参照してください。

既に日付値ならそのまま使う

IF(ISNUMBER(B2),B2,...)

B2が既に数値なら、DATEVALUEへ渡さずB2をそのまま返します。今回の課題Cは、既存の日付値を維持します。

日付値に時刻が含まれ、日付ごとの合計が合わない場合は、時刻付きデータをSUMIFSで日付ごとに集計する手順を確認してください。

文字列ならDATEVALUEで変換を試す

DATEVALUE(B2)

DATEVALUEは、Excelが日付として認識できる文字列を日付シリアル値へ変換する関数です。認識できる形式は、ExcelやOSの地域・日付設定の影響を受けることがあります。

変換できなければ「要確認」を返す

IFERROR(DATEVALUE(B2),"要確認")

DATEVALUEがエラーになったとき、IFERRORで「要確認」と表示します。これはエラーを解決した完成値ではなく、元データを確認するための目印です。

変換後の日付表示を整える

C列の有効な日付がシリアル番号で表示された場合は、次の手順で表示を整えます。

  1. C2:C7を選択します。
  2. Ctrl+1を押して「セルの書式設定」を開きます。
  3. 「表示形式」タブで「ユーザー定義」を選びます。
  4. 種類へ yyyy/mm/dd と入力して確定します。

ここで行うのは表示の調整です。文字列を日付値へ変える処理は、先ほどの式で既に行っています。表示形式の変更と値の変換を混同しないでください。

変換後にISNUMBERで確認する

D2へ次の式を入れ、D7までコピーします。

=ISNUMBER(C2)

Windows版Excel 16.0で今回の6件を確認したところ、有効な日付4件はTRUE、空欄と「要確認」はFALSEでした。文字列だった日付は数値の日付値へ変わるため、日付としての並べ替えや期限比較に使える状態になります。

文字列でも、yyyy/mm/ddのように桁がそろっていれば、見かけ上は日付順に並ぶ場合があります。そのため「文字列なら必ず並べ替えが壊れる」とは判断せず、日付として扱える値へ整ったかを確認します。

認識できない値は推測で直さない

2026/13/01には存在しない13月が含まれます。今回の式では「要確認」となります。

この値を2027/01/01や2026/12/01などへ推測で補正してはいけません。元データ、元PDF、入力者への確認など、正しい値を判断できる情報へ戻ります。

LEFT・MID・RIGHTで文字列を分け、DATE関数で強制的に組み立てる方法もありますが、DATE関数は月や日が範囲外でも別の日付へ繰り上げることがあります。異常値を自動補正してよい業務ルールがない限り、今回のように「要確認」で止めるほうが安全です。

曖昧な日付形式は元データを確認する

01/02/2026は、地域や設定によって「2026年1月2日」と「2026年2月1日」のどちらにも解釈される可能性があります。DATEVALUEで結果が返っても、その結果が元データの意味と一致するとは限りません。

曖昧な値は自動変換せず、元データの意味と利用環境の地域設定を確認してください。今回の主例は、2026/10/01のように年・月・日の順が分かる形式に限定しています。

PDF・OCRから取り込んだ場合の順番

PDFやOCRから取り込んだ値は、次の順番で確認します。

  1. 元PDFとExcelの値を照合する
  2. 誤認識があれば、元資料に基づいて修正する
  3. 値が正しいことを確認してから、文字列日付を日付値へ変換する
  4. 変換後にISNUMBERと表示を確認する

たとえば、元PDFが2026/10/03なのにOCR結果が2026/10/08なら、DATEVALUEで日付値へ変換できても内容は誤りです。OCR誤認識の修正と、Excel上のデータ型変換は別の工程として扱います。

期限切れ判定へつなげる

変換後のC列が日付値になれば、TODAY関数との比較など、期限判定へ使える状態になります。

Excelで期限切れの未完了行だけ色を付ける方法では、ISNUMBER($C2)で期限が数値か確認してから、TODAY関数と比較しています。文字列の期限がその判定から外れる場合は、先にこの記事の方法で日付値へ整えてください。

うまく変換できないときの確認ポイント

  • 地域設定:元文字列の日付順と、WindowsやExcelが使う日付形式が合っているか。
  • 元文字列:年・月・日が欠けていないか。曖昧な順序になっていないか。
  • 余分な文字:不要な空白、説明文、認識できない記号などが混ざっていないか。
  • 無効な月日:13月、存在しない日などが含まれていないか。
  • 元データの誤り:PDF取込やOCRなら、変換前に元資料と一致しているか。

「要確認」が出たら、式を無理に複雑化する前に元データを確認します。入力形式が部署ごとに異なる場合は、日付の入力形式を統一するルールも必要です。

関連記事との使い分け

Microsoft公式情報と対応環境

Microsoft公式では、文字列として保存された日付をDATEVALUEで日付シリアル値へ変換する手順、日付が計算用のシリアル番号として保存されること、DATEVALUEの認識がシステムの日付設定の影響を受けることが説明されています。

DATEVALUE・ISNUMBER・IFERRORの公式ページは、Microsoft 365、Excel 2024、2021、2019、2016などを対象にしています。公式ページごとにMac版・Web版の記載範囲は異なります。この記事の式と6件の結果は、Windows版Microsoft Excel 16.0で確認しました。画面名や認識できる日付形式は、バージョン、OS、地域設定によって異なる場合があります。

まとめ

日付らしく見えることと、Excelが日付値として扱っていることは別です。まずISNUMBERで状態を確認し、元の期限を残したまま別列へ変換します。

=IF(B2="","",IF(ISNUMBER(B2),B2,IFERROR(DATEVALUE(B2),"要確認")))

空欄は空欄、既存の日付値はそのまま、認識できる文字列だけを日付値へ変換します。認識できない値や曖昧な値は推測で直さず、元データへ戻って確認してください。

タイトルとURLをコピーしました