「ちゃんと日付を入力しているのに、なぜか計算できない」——このシリーズも、今回で7回目になります。
私自身、Excelを使い始めたばかりの頃は、日付を入力しているのに差分の計算ができなかったり、並び替えをしたら順番がぐちゃぐちゃになったりと、原因の分からないトラブルに何度も悩まされてきました。ですが、Excelを研究していく中で気づいたのは、トラブルの多くは関数ではなく「データの中身」に原因があるということです。
以前、システムから出力した注文データを日付順に並べようとしたとき、どうしても「12月」より「1日」の行が先に来てしまい、正しく時系列に並ばなかったことがあります。何度並び替えても直らず、原因が分かるまでかなり時間を使いました。結局、日付が数値ではなく文字列として入っていたことが原因だったのですが、見た目では日付そのものだったため、まったく気づけませんでした。
これまで①〜⑥では、数字が文字列になっているケースを中心に、SUM関数が計算されない原因を研究してきました。今回のテーマは、その日付版とも言える「日付が文字列になっている」ケースです。見た目は日付なのに、Excelの中では日付として認識されていない——そんな、初心者がとくにハマりやすいトラブルを、一緒に研究していきましょう。

よくある状況

まずはよくある例を見てみます。次のような売上表を作ったとします。
一見すると、まったく問題がなさそうに見えます。しかしこの状態で、次のようなことが起きることがあります。
- 並び替えをすると順番がおかしくなる
- 日付の差分(何日経ったか)が計算できない
- 日付を使った関数がうまく動かない
「ちゃんと日付を入力しているのに、なぜ?」——ここでよく起きているのが、今回のテーマです。
原因:日付ではなく「文字列」になっている
Excelでは、2024/4/1 は本来、日付データとして扱われます。しかし入力方法によっては、同じ 2024/4/1 が文字列データとして扱われてしまうことがあります。
Excelの内部では、次のような違いがあります。

見た目はまったく同じでも、Excelにとっては別のデータです。文字列扱いになっていると、並び替えが正しく動かない、日付の計算ができない、関数が反応しない、といったトラブルが起きます。
原因の根っこは、①〜⑥で取り上げてきた「数字が文字列になっている」問題と、実はまったく同じです。日付も、Excelの内部では「数値」として管理されているため、それが文字列になってしまうと、途端に計算できなくなるのです。この「日付=数値」という考え方は、今回の記事の一番のポイントなので、後ほどあらためて詳しく説明します。
なぜこのミスが起きるのか
研究員としてよく見る原因は、主に次の3つです。
① コピペしたデータ
Webサイトや社内システムからコピーしたデータは、見た目が日付でも、文字列として貼り付けられることがあります。とくに、基幹システムから出力した売上明細や、他部署から共有された一覧をそのまま貼り付けた場合は、一度疑ってみたほうがよい原因です。
② 全角スラッシュや区切り文字が原因
例えば 2024/4/1 のように、全角の「/」を使って入力すると、Excelは日付として認識できません。また、2024.4.1 のようにドットで区切ったり、2024-04-01 と 2024/4/1 を混在させたりすると、環境によっては文字列扱いになることがあります。日付の区切りは、半角のスラッシュ(/)で統一するのが基本です。
③ 表示形式が「文字列」になっている
セルの書式設定が「文字列」になっていると、日付を入力しても、そのまま文字列として扱われてしまいます。テンプレートを使い回している場合や、他の人が作った表をベースにしている場合に、意図せずこの状態になっていることがあります。
このミスの厄介なところは、見た目ではほとんど分からないという点です。だからこそ、初心者が非常にハマりやすいポイントになっています。
見分けるポイント
日付が文字列になっている場合には、いくつかのサインがあります。
① 左寄せになっている
Excelでは通常、日付(数値)は右寄せ、文字列は左寄せで表示されます。日付なのに左寄せになっている場合は、文字列扱いになっている可能性が高いです。これは、①〜⑥でも繰り返し登場した、もっとも分かりやすいサインです。
② 並び替えがおかしい
本来は「4/1 → 4/2 → 4/3」と並ぶはずが、「4/1 → 4/10 → 4/2」のように、数字の頭の文字だけで並んでしまう場合は、文字列扱いの可能性が高いです。これは、文字列が「文字の順番」で並び替えられるために起こる現象で、日付が文字列になっているときの典型的なサインです。
③ 計算できない
=TODAY()-A2 のように、日付を使った引き算がうまくいかない場合も、文字列になっている可能性があります。日付が正しく数値として認識されていれば、この式は「今日から何日前か」という日数を返してくれますが、文字列だとエラーになったり、おかしな結果になったりします。
④ ISNUMBER関数で確認する
確実に判断したい場合は、別のセルに =ISNUMBER(A2) と入力してみてください。日付が数値として認識されていればTRUE、文字列扱いになっていればFALSEが返ってきます。日付は内部的には数値なので、正しい日付であればISNUMBERはTRUEを返す、という点を覚えておくと便利です。
解決方法
ここでは、初心者の方でも簡単にできる方法を紹介します。
方法①:「区切り位置」を使う
対象の列を選択し、「データ」タブから「区切り位置」を開いて、何も設定を変えずにそのまま「完了」を押します。これだけで、文字列だった日付がまとめて日付データとして再認識されることがあります。大量のデータを一度に変換できるため、実務でも便利な方法です。
方法②:ダブルクリック+Enter
対象のセルをダブルクリックして、そのままEnterキーを押します。これだけでも、Excelがデータを読み直して、日付として認識し直してくれる場合があります。数件だけ直したいときに手軽な方法です。
方法③:表示形式を変更する
セルを選択して右クリックし、「セルの書式設定」から「日付」を選びます。ただし、この方法は「表示形式」を変えるだけなので、中身がすでに文字列になっている場合は、これだけでは直らないことがあります。その場合は、書式を「日付」や「標準」に変えたうえで、方法①や②を組み合わせてください。
方法④:DATEVALUE関数を使う
文字列になった日付を、確実に日付データへ変換したい場合は、DATEVALUE関数が便利です。
=DATEVALUE(A2)
この関数は、文字列の日付を、Excelが日付として扱えるシリアル値(数値)に変換してくれます。ただし、結果は数値(例:45383)で表示されるため、そのセルの表示形式を「日付」に設定し直すと、見慣れた日付の形で表示されます。元の文字列データを残したまま、別の列に正しい日付を作りたい場合に向いた方法です。
全角スラッシュが原因の場合は、DATEVALUEの前にSUBSTITUTE関数で全角を半角に置き換えると、より確実です。少し複雑になりますが、=DATEVALUE(SUBSTITUTE(A2,"/","/")) のように書くと、全角スラッシュを半角に直したうえで日付に変換できます。
Excelで理解しておくべき重要ポイント:日付も「数字」である
ここで、今回のテーマの核心となる考え方をお伝えします。それは、Excelでは日付も「数字」である、ということです。
Excelの内部では、日付は「シリアル値」と呼ばれる連番の数値として管理されています。具体的には、1900年1月1日を「1」として、そこから1日ごとに1ずつ増えていく数値で、日付を表現しているのです。例えば「2024/4/1」は「45383」という数値として、Excelの中では扱われています。
日付が数値であるからこそ、「日付の引き算で日数が出せる」「並び替えで時系列に並ぶ」「翌月末を計算できる」といった、さまざまな計算ができるわけです。逆に言えば、日付が文字列になってしまうと、この「数値としての性質」が失われ、一気に計算ができなくなってしまいます。
「日付が計算できないのは、日付が数字ではなくなっているから」——この一点さえ理解しておけば、今回のトラブルの原因も、解決の方向性も、すっきりと腑に落ちるはずです。
研究員メモ
Excelを使っていると、「見た目は正しいのに、なぜ動かない?」と感じることがよくあります。その答えの多くは、見た目ではなく中身にあります。
今回のように、日付に見えても中身が文字列であれば、Excelは正しく処理できません。①の文字列、②の全角数字、③のスペース、④の単位、⑤のアポストロフィ、⑥の数字と文字の混在、そして今回⑦の日付。テーマは少しずつ違いますが、原因はどれも「本来あるべきデータの種類と、実際の中身がズレている」という一点に行き着きます。だからこそ、「関数がおかしい」と思ったときは、関数ではなくデータの種類を疑う。この視点が身につくと、Excelのトラブル対応力が一気に上がります。
なお、日付以外でも、末尾に見えない空白が入っていて計算や照合がうまくいかない、というケースもよくあります。心当たりのある方は、末尾に空白があるケースもあわせて確認してみてください。

まとめ
今回のテーマは「日付なのに計算できない理由⑦|日付が文字列になっている」でした。ポイントをまとめます。
- チェックポイント:左寄せになっている/並び替えがおかしい/コピペデータではないか
- 原因:日付が文字列として扱われている
- 解決方法:区切り位置/ダブルクリック+Enter/表示形式の変更/DATEVALUE関数
いちばん大切なのは、Excelでは日付も数字である、という考え方です。日付が計算できないときは、「日付が数字として認識されているか」を疑ってみてください。この視点さえ持っておけば、慌てずに原因を切り分けられるようになります。
もし今、文字列になった日付の列があっても、慌てる必要はありません。区切り位置やDATEVALUE関数を使えば、見た目はそのままに、計算できる日付へと作り変えることができます。
関数の使い方シリーズや実務トラブル解決シリーズでは、他の関数やトラブルについても実務目線で整理していますので、あわせてご覧ください。次回は、これもまた見えにくいミスの代表格である「先頭に空白がある」ケースを取り上げる予定です。


コメント