VLOOKUP関数が日時を検索してくれない - エクセル(Excel)関数
指定された範囲から検索する
VLOOKUP関数が指定した日時を見つけてくれない、無視される、エラーになる場合
エクセル表サンプル
| |
A |
B |
C |
D |
E |
F |
| 1 |
|
|
|
|
|
|
| 2 |
|
本日の担当者 12月7日 |
高橋 |
6789 |
10:00~19:00 |
|
| 3 |
|
|
|
|
|
|
| 4 |
|
日時 |
担当 |
内線 |
受付 |
|
| 5 |
|
12月5日 |
鈴木 |
1234 |
9:00~18:00 |
|
| 6 |
|
12月6日 |
佐藤 |
5678 |
10:00~19:00 |
|
| 7 |
|
12月7日 |
高橋 |
6789 |
10:00~19:00 |
|
| 8 |
|
12月8日 |
鈴木 |
1234 |
9:00~18:00 |
|
| 9 |
|
12月9日 |
鈴木 |
1234 |
9:00~18:00 |
|
| 10 |
|
12月10日 |
高橋 |
6789 |
9:00~18:00 |
|
| 11 |
|
12月11日 |
鈴木 |
1234 |
9:00~18:00 |
|
| 12 |
|
12月12日 |
鈴木 |
1234 |
9:00~18:00 |
|
| 13 |
|
12月13日 |
佐藤 |
5678 |
10:00~19:00 |
|
| 14 |
|
12月14日 |
佐藤 |
5678 |
10:00~19:00 |
|
| 15 |
|
12月15日 |
高橋 |
6789 |
9:00~18:00 |
|
| 16 |
|
12月16日 |
小林 |
3456 |
9:00~18:00 |
|
| 17 |
|
|
|
|
|
|
「本日の担当者」を表から検索して呼び出します
C2の数式
=VLOOKUP(VALUE(TODAY()),B5:E16,2,0)
D2の数式
=VLOOKUP(VALUE(TODAY()),B5:E16,3,0)
E2の数式
=VLOOKUP(VALUE(TODAY()),B5:E16,4,0)
上記でエラーになる場合や見つけてくれない場合は
2通りが考えられます
1つ目:B列が文字列で入力されている場合
VLOOKUP関数は「12月7日」を探しているわけではなく
TODAY()が取得する「12月7日」のシリアル値を検索します
=TODAY() 表示が日時の場合:「12月7日」
検索しているシリアル値:「45998」
したがってB列が文字列で「12月7日」と入力されている場合
「12月7日」という数字と漢字なので「VALUE(TODAY())」とは一致しません
対応策:B列の表示形式を日付の3月14日を選択して日付で打ち直します
2つ目:B列の「12月7日」が今年ではない場合
何かの表や去年から使いまわして日付をコピーした場合
「12月7日」が実は「2017年12月7日」など今年ではない場合
「VALUE(TODAY())」の「TODAY」は「2025年12月7日」今日なので一致しません
対応策:セルをクリックして見ると年号も表示されるので今年に直します
また検索している関数がTODAYでなくNOWの場合
TODAYもNOWも表示を日付にすれば「12月7日」ですが
シリアル値が違うので一致しません
=NOW() 45998.653113426
=TODAY() 45998
NOWは時間の秒まで含むのでまず一致しません
今日を呼び出す場合はTODAYを使います
抽出した日時の結果が数値になる場合
結果が「12月7日」ではなくシリアル値:「45998」で表示される場合、セルの書式設定か関数で表示を変更する必要があります
基本はセルの書式設定で設定
セルを右クリックまたは「CTRL」押しながら「1」でセルの書式設定を開く
表示形式>分類>日時で指定
関数で指定する場合
式全体を「TEXT」関数の中にいれると文字列として表示できます
VLOOKUPの式が以下の場合
=VLOOKUP(VALUE(TODAY()),B5:E16,2,0)
=TEXT(
式,"m月d日")
=TEXT(
VLOOKUP(VALUE(TODAY()),B5:E16,2,0),"m月d日")
=12月7日
表示形式の種類は
"y年m月d日" → 25年12月7日
"yyyy/mm/dd" → 2025/12/07
"yyyy年mm月dd日" → 2025年12月07日

Copilot(コパイロット)の回答
VLOOKUP関数が日時を検索してくれない
なるほど!💡
Excelの VLOOKUP関数で日時が一致しない のはよくある悩みです。
ポイントは「Excelの日時は内部的に数値(シリアル値)」として扱われていることです。見た目が同じでも、検索値と表の値が完全一致していないとヒットしません。
主な原因
日付と時刻が混在
例:「2025/12/7」と「2025/12/7 19:00」は別物。日付だけ一致させたいなら工夫が必要です。
文字列として入力されている
「2025/12/7」と見えていても、実は文字列扱いになっていると一致しません。
小数点以下の差
Excelの日時は「整数=日付」「小数=時刻」で表現されるため、秒単位の違いでも一致しません。
解決方法
1. 日付だけで検索したい場合
検索値を INT で整数化すると「日付部分だけ」で比較できます。
excel
→ A1が「2025/12/7 19:00」でも「2025/12/7」と一致します。
2. 文字列を数値に変換する
もし表の値が文字列なら、VALUE や DATEVALUE を使って数値化してから検索します。
excel
3. 時刻まで含めて検索したい場合
完全一致が必要なので、秒単位の差を丸めると良いです。
excel
4. 代替方法
・INDEX + MATCH を使うと柔軟に検索可能
・近似一致(TRUE) を使えば「最も近い日時」を返せますが、範囲が昇順に並んでいる必要があります。
まとめ
・Excelの日時は「数値」なので、見た目が同じでも一致しないことがある
・日付だけなら INT、文字列なら VALUE、時刻までなら ROUND がポイント
・複雑な場合は INDEX+MATCH の方が便利
・
エクセル画面以外がクリック、操作できなくなった
・
開発タブが見当たらない、消えた
・
セルの左上に謎の緑の三角形 ◤ がある
・
VLOOKUP関数が日時を検索してくれない
・
Analyticsなどでダウンロードしたcsvが文字化けする場合
・
保存しているのに開くと数式が消えたりや書式がなくなっている
VLOOKUP関数が日時を検索してくれない>
HOME