CSV・外部データでズレる原因と直し方
「日付なのに 45231 みたいな数字になる」
「CSVを開くと日付がズレる」
「VLOOKUPやXLOOKUPで日付が一致しない」
こうした“日付トラブル”は、ほぼすべて「シリアル値」が原因です。
この記事では、実務でよくある日付トラブルだけを症状別に整理しています。
そのため基本的な使い方は、ここでは扱いません。
日付に関する基本的なことを学びたい方は、下記ページをご確認ください。
ここでは原因 → 見分け方 → その場で使える直し方を練習用ファイルとセットで、一緒に手を動かしてながら理解できます。

練習用ファイルはExcelファイルとなっていますが
解説はCSVファイルを想定しています。
必要に応じて、ダウンロードファイルを
お手元でCSVファイルに変換していただいても大丈夫です。
ここでは以下のようなパターンを想定しています。
- CSVから取った日付が文字列として入る
- US形式の日付で正しい日付ではない
- 日付に時刻も一緒に付いている
- 見た目は同じなのに一致しない
Excelの日付は「数字」で管理されている
Excelは見た目に「2025/12/25」にように日付に見えますが、これは日付形式の書式設定が自動・もしくは手動で設定されているからで、実際には日付は「数字」で管理されています。
| 表示 | 中身 |
|---|---|
| 2025/12/25 | 46016 |
Excelで日付を扱う上で、これは絶対に押させておきたいポイントですね!
実務でよくある「日付ズレ」トラブル一覧
日付のズレでよくある例を一覧にしてみました。
| 症状 | 原因 |
|---|---|
| 数字になる | 表示形式が標準 |
| 検索で抽出できない | 片方が文字列 |
| 1日ズレる | タイムゾーン/日付に時刻データもついている |
| 4年ズレる | 1900/1904年問題(Winと初期MacのOS設定) |
| CSVで崩れる | 文字列として取り込み |
それ、日付?文字?シリアル値?見分け方
ここは、おさらい程度に簡単に見直しておきましょう。
一番簡単な見分け方は、リボンメニューのホームで中央あたりにある数値の項目を確認します。

上の画像は日付となっているので、A1セルの値は「日付形式」であることが分かります。

こちらは「標準」と表示されています。
Excelは本来シリアル値で管理されているのが「標準」なので、標準書式 = シリアル値となります。


どちらも見た目は日付の様に見えますが、よく見ると、どちらも「文字列」になっています。
他にも関数を使って、数値なのか文字列なのか判定する方法もありますが、おそらくこの方法が一番簡単です。
日付トラブルの基本的な直し方
基本的には、日付形式になっていないセル・もしくは列全体を選択して、リボンメニューのホームで中央あたりにあるプルダウンを「日付」に変更してあげれば、日付形式で表示されます。

ただ、この方法で直すと書式は「2025/12/25」の形式固定なので、他の形式が良い場合は Ctrl + 1 で書式設定を選んであげましょう。
CSV・外部データ取り込み時の落とし穴
CSVや外部データは、「見た目が正しくても中身が違う」ことが非常に多く注意が必要です。
実務では日付にまつわるトラブルが起きやすい症状と対策をまとめました。
CSVファイルには「カンマ区切りのテキストファイル」なので、「日付」や「数値」などの概念はない。
そのため、他のデータと突合したい場合に、上手くいかないことがあります。
| 症状 | 対策 |
|---|---|
| 文字列として入る | 「- -」やVALUE関数で数値化 |
| US日付 | VALUE関数・LEFT関数・MID関数・RIGHT関数をネストして必要箇所を抜取り |
| 時刻付きで1日ズレ | DATE関数・YEAR関数・MONTH関数・DAY関数をネスト |
CSVや外部データ取り込み時のトラブルは実務でか起きやすいので、練習用ファイルを使って実際にやってみましょう。
文字列として入る
CSVや外部システムから取り込んだデータは、見た目は数字でも「文字列」として入っていることがあります。
この状態では合計が合わない、XLOOKUP関数で一致しないなどのトラブルが起きやすくなります。
対策としては、「–A1」 や VALUE関数で数値へ変換します。
A列に日付が文字列として入っていますので、これをD列に「–」を使って数値化していきましょう。


どちらも簡単な作業で数値化に成功しました。
US日付
CSVや海外製ツール、Google系サービスからデータを取り込むと、日付が「月/日/年(MM/DD/YYYY)」形式で入ることがあります。
日本の「年/月/日(YYYY/MM/DD)」や「日/月/年」とは解釈が異なるため、Excelが日付を誤って解釈してしまうことがあります。
例えば、A列のようは「03/04/2025」は、US形式では「2025年3月4日」ですが、日本の感覚では「4月3日」に見えてしまいます。このズレに気づかず処理を進めると、集計期間や検索条件がずれ、結果が合わなくなる原因になります。
対策としては、VALUE関数・LEFT関数・MID関数・RIGHT関数をネストして必要箇所を抜取りながら数値化します。

こうすることで、LEFT関数・MID関数・RIGHT関数で必要な値を抜取りながら、VALUE関数で抜き取った値を数値化することができました。

VALUE関数の記事は準備中ですが
VALUE関数は第1引数のみで
数値に変換したい値を第1引数に入れてあげるのみです
=VALUE(RIGHT(A2,4)&MID(A2,4,2)&LEFT(A2,2))
時刻付きで1日ズレ
システムや外部データでは、日付が「2025/12/26 00:00:00」のように時刻付きで管理されていることがあります。これをそのままExcelに取り込むと、思った結果にならないことがあります。
対策としては、DATE関数・YEAR関数・MONTH関数・DAY関数をネストして日付のみ抜取ります。

こうすることで日付部分だけを抜き取ることができました。
=DATE(YEAR(A2),MONTH(A2),DAY(A2))
VLOOKUP関数/XLOOKUP関数で日付が一致しない理由
CSVファイルには「カンマ区切りのテキストファイル」なので、「日付」や「数値」などの概念はありません。
そのため、他のデータと突合したい場合に、上手くいかないことがあります。
Excel上では同じ日付に見えても、中身が違うと検索は一致しません。
そのため、CSVから取り込んだデータと、Excel内のデータを VLOOKUP関数・XLOOKUP関数で突合しようとすると
「見た目は同じ日付なのに、なぜか一致しない」
というトラブルがよく発生します。
結論から言うと、原因のほとんどは【片方が「数値の日付」、もう片方が「文字列の日付」】なことです。
Excelでは、日付は内部的には シリアル値(数値) として扱われます。
ですが、CSVから取り込んだ日付は、多くの場合 文字列 のままです。
分かりやすく、それぞれのデータを並べてみました。
ExcelのA列とCSVのD列は、見た目は同じように見えるけれど、実際のデータの中身はG列とH列です。
Excelは数値なのに対して、CSVは文字列となっていて、全く異なるデータなので、 VLOOKUP関数・XLOOKUP関数で突合しようとしても一致しません。

ここでもCSVのデータを数値化してあげることで解決します。
数値化したいのはE列のデータなので第2引数のEの前に「-」を2つ入れます。

すると、数値と数値なのでデータが一致して担当者を反映してくれました。

=XLOOKUP(A3,--E:E,F:F)
まとめ
ここまで一緒に見てきた通り、日付トラブルは「表示」と「中身」のズレが原因です。
Excelの日付の仕組みをしっかり理解できていれば、日付トラブルはほぼ防げます。
- 日付=表示、中身=数字
- 合わない時は「型」を疑う
- CSVは必ず疑う
実務において、日付はほぼ必ず扱うデータ項目なので
トラブルの原因と解消法をしっかり覚えておきましょう!