見た目が同じ日付でも、文字列と数値の日付、日付のみと時刻付きでは一致しません。VLOOKUPで#N/Aが出たら、まずISNUMBERで型を確認し、次に時刻の有無と完全一致の指定を調べます。表示形式を変えるだけでは文字列は数値になりません。
無料Excelサンプルで一緒に試す
日付・商品・入荷数の練習データです。日付セルを確認し、本文の診断式と検索式を空きセルへ入力して試します。
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サンプルで復習する
日付・商品・入荷数の練習データです。日付セルを確認し、本文の診断式と検索式を空きセルへ入力して試します。
Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。

コメント