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

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

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

無料Excelサンプルで一緒に試す

日付・商品・入荷数の練習データです。日付セルを確認し、本文の診断式と検索式を空きセルへ入力して試します。

無料サンプルファイルをダウンロード(.xlsx)

Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。

目次

確認する順番

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

=ISNUMBER(A2)
=ISNUMBER(E1)

両方がTRUEなら数値です。ただし、TRUEだから必ず正しい日付とは限りません。日付はExcel内部で数値として管理されるため、意図した年月日になっているかも確認します。

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

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

=VLOOKUP(DATE(2026,4,1),A2:C4,3,FALSE)

結果は4月1日の入荷数50です。E1に数値の日付が入っていれば、DATEの部分をE1に置き換えられます。最後のFALSEを省略すると近似一致になるため、この用途では明示します。

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

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

=DATEVALUE(A2)

DATEVALUEを補助列に使う方法もありますが、認識される日付表記は地域設定などの影響を受けます。8桁の20260401を変換する場合は8桁の日付を分解して変換する方法を使います。

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

=A2=INT(A2)

A2が数値の日付のとき、FALSEなら時刻の小数部分を含みます。表示形式をyyyy/m/dにしても時刻自体は残ります。日単位で照合したいなら補助列に=INT(A2)を入れ、検索対象も同じ日単位にそろえます。

日付単位の検索表を作る

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

=VLOOKUP(INT(E1),G2:H4,2,FALSE)

同じ日に複数の行があると先頭の1件だけが返ります。1日分を合計したい場合はSUMIFS、すべて表示したい場合はFILTERを使います。

型以外の原因も確認する

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

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

無料Excelサンプルで復習する

日付・商品・入荷数の練習データです。日付セルを確認し、本文の診断式と検索式を空きセルへ入力して試します。

無料サンプルファイルをダウンロード(.xlsx)

Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。

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

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

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

この記事を書いた人

コメント

コメントする

目次