VLOOKUPで日付が一致しない|文字列・時刻・検索範囲の確認方法

日付の検索エラー 原因と直し方。無料Excelサンプル付き。

見た目が同じ日付でも、文字列と数値の日付、日付のみと時刻付きでは一致しません。VLOOKUPで#N/Aが出たら、まずISNUMBERで型を確認し、次に時刻の有無と完全一致の指定を調べます。表示形式を変えるだけでは文字列は数値になりません。

この記事の基本の式
数式=VLOOKUP(DATE(2026,4,1),A2:C4,3,FALSE)
練習用Excelファイル(無料ダウンロード)
日付・商品・入荷数の練習データです。日付セルを確認し、本文の診断式と検索式を空きセルへ入力して試します。Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

確認する順番

検索値と表側の日付の両方を確認します。たとえばA2が表側、E1が検索値です。

E2・E3に入力:検索する日付と表側の日付が、数値かどうかを確認する
数式=ISNUMBER(A2)
=ISNUMBER(E1)
ひとことで日付が数値ならTRUE、文字列ならFALSE。VLOOKUPが見つからないときの、最初の診断
A2
表側(日付の列)の日付です
E1
検索値(探す日付)です
補足両方がTRUEでも、意図した年月日とは限りません。表示形式ではなく、中身(数値)を比べます。
ポイント両方がTRUEなら数値です。ただし、TRUEだから必ず正しい日付とは限りません。日付はExcel内部で数値として管理されるため、意図した年月日になっているかも確認します。
日付が数値として入っているか調べる(ISNUMBER)式 =ISNUMBER(A2) の解説図。E2に入力する
E2に =ISNUMBER(A2) を入力。A2 の日付は数値 (シリアル値)なので TRUE

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

表に文字として入っている数字を、まとめて数値に直したいときは文字列を数値に一括変換する方法を見てください。

VLOOKUP の基本(書き方・別シート・#N/A を出さない方法・一致しない原因)は、エクセルのVLOOKUPの使い方にまとめています。

引用符で囲んだ日付をDATEに変える

A2:C4のA列が数値の日付なら、文字列の”2026/4/1″で検索するのではなくDATEを使います。

E4に入力:DATE関数で数値の日付を作って検索する
数式=VLOOKUP(DATE(2026,4,1),A2:C4,3,FALSE)
ひとことで文字列の “2026/4/1” ではなく、数値の日付で探す
DATE(2026,4,1)
検索値です。DATE関数で、数値の日付を作ります。E1に数値の日付が入っていれば、E1に置き換えられます
A2:C4
検索する表です。日付の列が左端にあります
3
返す列の番号です。表の3列目=入荷数です
FALSE
完全一致です。省略すると近似一致になります
データの流れ
① 数値の日付 4/1 と同じ日付の行を探す結果
A22026/4/1E450
ポイント結果は4月1日の入荷数50です。E1に数値の日付が入っていれば、DATEの部分をE1に置き換えられます。最後のFALSEを省略すると近似一致になるため、この用途では明示します。

表側が文字列になっている場合

元データをコピーしてから、[データ]→[区切り位置]で変換します。日付の並びが年・月・日なら、最終画面で日付形式YMDを指定します。月・日・年のデータにYMDを使うと意図した日付にならないので、元の表記に合わせてください。

補助列に入力:文字列の日付を、数値の日付に変える
数式=DATEVALUE(A2)
ひとことで文字列の日付を、数値の日付に変換する
A2
文字列になっている日付です。すでに数値だと #VALUE! になります
補足認識される日付の書き方は、地域設定などで変わります。8桁の「20260401」のような数字は、別の方法で変換します。
注意DATEVALUEを補助列に使う方法もありますが、認識される日付表記は地域設定などの影響を受けます。8桁の20260401を変換する場合は8桁の日付を分解して変換する方法を使います。

時刻を含む日付を見分ける

セルに入力:日付に時刻が含まれていないかを確認する
数式=A2=INT(A2)
ひとことでTRUEなら日付だけ、FALSEなら時刻(小数部分)を含んでいる
INT(A2)
小数部分(時刻)を切り捨てた、日付だけの値です
A2=INT(A2)
元の値と日付だけの値を比べます。同じならTRUE、違えば時刻が付いています
補足表示形式を yyyy/m/d にしても、時刻そのものは残ります。
注意A2が数値の日付のとき、FALSEなら時刻の小数部分を含みます。表示形式をyyyy/m/dにしても時刻自体は残ります。日単位で照合したいなら補助列に=INT(A2)を入れ、検索対象も同じ日単位にそろえます。

日付単位の検索表を作る

説明例として、元表A列に日時、C列に入荷数があるとします。G2へ=INT(A2)、H2へ=C2を入れて下へコピーし、G:Hを検索表にします。

E7に入力:日単位の検索表で探す
数式=VLOOKUP(INT(E1),G2:H4,2,FALSE)
ひとことで時刻が付いていても、日単位にそろえて探す
INT(E1)
検索値です。時刻を切り捨てて、日付だけにします
G2:H4
日単位の検索表です。G列にINT(日付)、H列に入荷数を並べます
2
返す列の番号です。表の2列目=入荷数です
補足同じ日に複数の行があると、先頭の1件だけが返ります。
ポイント同じ日に複数の行があると先頭の1件だけが返ります。1日分を合計したい場合はSUMIFS、すべて表示したい場合はFILTERを使います。

【実機で検証】文字の日付・時刻つきの日付で探す

11/3 は日付だけ、11/4 は「9:00」の時刻つきで入った表で試しました。セルの表示はどちらも日付だけです。

エクセルのVLOOKUPで文字の日付や時刻つきの日付が見つからずDATEVALUEやINTで見つかった画面
エクセルのVLOOKUPで文字の日付や時刻つきの日付が見つからずDATEVALUEやINTで見つかった画面
ためしたこと結果
文字の “2026/11/3” で探す#N/A
DATEVALUE("2026/11/3") で探す会議
時刻つきの 11/4 を DATE(2026,11,4) で探す#N/A
XLOOKUP(DATE(2026,11,4),INT(A2:A3),B2:B3)出張

表示が同じ「2026/11/4」でも、時刻が入っていると日付だけでは見つかりませんでした。XLOOKUP なら検索範囲を INT で囲むと、時刻を切り捨てて探せます。

型以外の原因も確認する

  • 日付列がVLOOKUPの範囲の左端にあるか。
  • 検索する日付が実際に存在するか。
  • 参照範囲がデータの最終行まで含まれるか。
  • 列番号が範囲内の正しい位置か。

原因を確認する前にIFERRORで空白にすると、検索できていないことを見落とします。まず正しい結果が出る式に直し、その後に表示を整えます。

練習用Excelファイル(無料ダウンロード)
日付・商品・入荷数の練習データです。日付セルを確認し、本文の診断式と検索式を空きセルへ入力して試します。Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

次に読むと理解が深まる記事

参考:Microsoft公式ドキュメント VLOOKUP / DATE / DATEVALUE

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次