公開日:
Excelで日付が文字列になる原因と直し方|日付形式に変換する方法
CSVから取り込んだ「2026/10/29」が、Excelで日付順に並ばない。期限までの日数を計算しようとしてもエラーになる。その場合、見た目は日付でも、内部では文字列として保存されているかもしれません。
Excelの日付は、計算可能な数値(シリアル値)として扱われます。この記事では日付と文字列を見分け、元の表記に合わせて日付データへ変換する方法を紹介します。
最初に結論:表示形式を変えるだけでは直らない
セルの表示形式を「日付」にしただけでは、文字列の 2026/10/29 が日付データへ変わらない場合があります。まずデータの種類を確認し、必要なら DATEVALUE 関数や[区切り位置]で変換します。
日付が文字列になる主な原因
- CSVやシステム出力から読み込んだ列が文字列扱いだった。
- 文字列形式のセルへ日付を入力した。
20261029のように、Excelが日付と認識しにくい8桁の値だった。- 余分な空白などが混ざっていた。
セルが左寄せか右寄せかはヒントになりますが、それだけで断定できません。数値かどうかは、隣のセルに =ISNUMBER(A2) を入力すると確認できます。
注意: 20261029 という8桁の普通の数値も ISNUMBER はTRUEです。TRUEだけで「正しい日付」と判断せず、変換結果が目的の日付か確認してください。
方法1:DATEVALUE関数で日付に変換する
A2に文字列の 2026/10/29 が入っている場合、別のセルに次の式を入力します。
=DATEVALUE(A2)
認識できる日付文字列であれば、Excelが日付として扱える数値へ変換します。結果が大きな数字で表示されたら、セルの表示形式を[日付]に変更してください。
複数行を処理するときは、数式を下までコピーします。正しく変換できたことを確かめてから、必要に応じて[形式を選択して貼り付け]→[値]で確定します。
文字列の並びやExcelの地域設定によっては #VALUE! になることがあります。うまく変換できない行を無理に日付へ置き換えないでください。
方法2:区切り位置機能でまとめて変換する
関数を増やしたくない場合、Windows版Excelの[データ]→[区切り位置]も選択肢です。
- 変換対象の列をコピーしておきます。
- 対象列を選択し、[データ]→[区切り位置]を開きます。
- 実際のデータを不必要に列分割しないよう、区切りの指定を確認します。
- ウィザードの最後で列のデータ形式を日付(YMDなど、元データに合う順序)に設定します。
- 変換後の日付とエラーの有無を確認します。
元データの形式が年/月/日の順なのか、月/日/年なのかで指定は変わります。順序を決めつけないことが大切です。
方法3:「20261029」のような8桁を変換する
20261029 は「年4桁・月2桁・日2桁」の形式です。この形式が統一されているなら、次の式で各部分を取り出せます。
=DATE(VALUE(LEFT(A2,4)),VALUE(MID(A2,5,2)),VALUE(RIGHT(A2,2)))
これは文字列の先頭4桁を年、次の2桁を月、最後の2桁を日として日付を組み立てる例です。桁数が違う値や不正な日付まで機械的に正しいものと扱わないよう、変換前後で確認します。
8桁の日付が実在するか、元の値と照合する
DATE関数は存在しない日付でも自動的に繰り上げることがあります。たとえば 20260230 を上の式で変換すると 2026/03/02 になります。数式がエラーを返さないことは、元データが正しい証拠にはなりません。
A2に元の8桁、B2に上のDATE式を入力した場合、C2に次の照合式を設定して下へコピーします。年4桁・月2桁・日2桁の8桁形式だけを対象にした例です。
=IFERROR(IF(AND(LEN(A2)=8,TEXT(B2,"yyyymmdd")=TEXT(A2,"00000000")),"一致","要確認"),"要確認")
20260228 と 20240229 は「一致」、存在しない 20260230 は「要確認」となります。エラーや桁数違いも「要確認」に振り分け、元データを確認してから修正してください。DATEが補正した値を自動で確定しないことが重要です。
変換後に確認したいこと
| 確認内容 | 確認方法 |
|---|---|
| 日付として保存されたか | 数式の結果であるセルを ISNUMBER で確認する |
| 並び替えが正しいか | 昇順にして前後関係を見る |
| 計算できるか | =B2-TODAY() などで日数差を試す |
| 元の年月日と一致するか | 少数行を原本と見比べ、不正値がないか確認する |
補足: #### と表示される場合は、日付が文字列という意味とは限りません。列幅不足などの表示上の問題も確認してください。
よくある質問
日付の表示形式に変えたのに計算できません
表示形式は見た目の設定です。文字列を日付へ変換できているかを確認してください。
日付の一部だけ変換できないのはなぜですか?
前後の空白、表記の混在、実在しない日付、年月日の順序が異なることなどが原因になり得ます。失敗した行を抽出し、元データで確かめましょう。
期限管理にも影響しますか?
はい。日付が文字列のままだと、期限前・期限切れの判定や日数計算が期待どおりにならない場合があります。Excelで複数の条件付き書式を設定して期限を色分けする方法も参考にしてください。
まとめ
Excelの日付が計算できないときは、まず「文字列として入っているのか」を確認します。一般的な日付文字列はDATEVALUE、列単位の処理は区切り位置、8桁形式はDATE関数を使うのが一つの方法です。変換後に原本との一致を確かめるところまでを作業に含めましょう。
参考:Microsoft サポート「文字列形式の日付を日付形式に変換する」
画面の名称や操作は、Officeのバージョンや表示幅などによって異なる場合があります。
