VLOOKUPで日付を検索できないときの対処法|#N/Aの原因はシリアル値

結論(先に答え)

VLOOKUPで日付検索が #N/A になる原因のほとんどは「片方がシリアル値(本物の日付)・片方が文字列」という型の不一致です。検索値は =VLOOKUP(DATE(2026,4,1), A2:C4, 3, FALSE) のようにDATE関数で渡すのが確実です。

「表にも検索値にも同じ日付が入っているのに、VLOOKUPが#N/Aを返す」——日付検索で最も多いトラブルです。見た目は同じ「2026/4/1」でも、Excel内部では数値(シリアル値)と文字列は別物として扱われます。この記事では原因の確認方法と、ケース別の直し方を解説します。

VLOOKUPで日付を検索して#N/Aになる原因と、DATE関数で日付型を渡して解決する図解
目次

サンプルデータ

ABC
1日付商品入荷数
22026/4/1りんご50
32026/4/2みかん30
42026/4/3バナナ80

練習用のExcelファイルはこちらからダウンロードできます:
Excel-vlookup-date-trouble-1.xlsx(ダウンロード)

まず原因を確認する:どちらが文字列か

セルに =ISTEXT(A2) と入力して TRUEなら文字列です。または対象セルの表示形式を「標準」に変えてみてください。45000のような数値に変われば本物の日付(シリアル値)、「2026/4/1」のまま変わらなければ文字列です。

ケース1:検索値の書き方が原因(最多)

=VLOOKUP("2026/4/1", A2:C4, 3, FALSE) のように日付をダブルクォートで囲むと文字列になり、シリアル値の表とは一致しません。次のどちらかに直します。

=VLOOKUP(DATE(2026,4,1), A2:C4, 3, FALSE) (DATE関数で日付型を作る・推奨)
=VLOOKUP(DATEVALUE("2026/4/1"), A2:C4, 3, FALSE) (文字列を日付型に変換)

検索値がセル参照(例:E1に日付)の場合は、E1自体が日付型かどうかをISTEXTで確認してください。

ケース2:表側の日付列が文字列

CSVの取り込みなどで表の日付列が文字列になっていることもあります。この場合は、日付列を選択して「データ」タブ→「区切り位置」→そのまま完了、とすると一括で日付型に変換できます。表を直せない場合は、検索値側を文字列に揃える方法もあります:=VLOOKUP(TEXT(E1,"yyyy/m/d"), A2:C4, 3, FALSE)(表の見た目の書式に合わせるのがポイント)。

ケース3:時刻付きの日付

表の日付に「2026/4/1 9:30」のように時刻が含まれていると、日付だけの検索値とは一致しません。作業列で =INT(A2) とすると時刻部分を切り捨てて日付だけにできます。

まとめ

症状・原因対処
検索値を”2026/4/1″と書いているDATE(2026,4,1) か DATEVALUE で日付型に
表の日付列が文字列区切り位置で日付型に一括変換
表に時刻が含まれるINT関数で日付部分だけにする
どちらが悪いか不明ISTEXTと表示形式「標準」で型を確認

こんな場合はこちら:最新の日付のデータを抽出するVLOOKUP関数の使い方まとめ

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

この記事を書いた人

コメント

コメントする

目次