VLOOKUP(ブイルックアップ)エクセル(Excel)関数
VLOOKUP(ブイルックアップ)は、表の範囲を列から検索して行にある値を呼び出します
・関数 | VLOOKUP(読み方 - ブイルックアップ) | |
・書式 | =VLOOKUP(検索値,範囲,列番号,検索の型) | |
・内容 | 指定された範囲の左端の列で特定の値を検索し、範囲内の対応するセルの値を返します。 | |
使い方
=VLOOKUP(
F1,
B3:E14,
2,
0)
エクセル表サンプル
|
A |
B |
C |
D |
E |
F |
1 |
|
|
|
|
|
|
2 |
|
日時 |
担当 |
内線 |
受付 |
|
3 |
|
8月10日 |
鈴木 |
1234 |
9:00~18:00 |
|
4 |
|
8月11日 |
佐藤 |
5678 |
10:00~19:00 |
|
5 |
|
8月12日 |
佐藤 |
5678 |
10:00~19:00 |
|
6 |
|
8月13日 |
鈴木 |
1234 |
9:00~18:00 |
|
7 |
|
8月14日 |
鈴木 |
1234 |
9:00~18:00 |
|
8 |
|
8月15日 |
鈴木 |
1234 |
9:00~18:00 |
|
9 |
|
8月16日 |
鈴木 |
1234 |
9:00~18:00 |
|
10 |
|
8月17日 |
鈴木 |
1234 |
9:00~18:00 |
|
11 |
|
8月18日 |
佐藤 |
5678 |
10:00~19:00 |
|
12 |
|
8月19日 |
佐藤 |
5678 |
10:00~19:00 |
|
13 |
|
8月20日 |
鈴木 |
1234 |
9:00~18:00 |
|
14 |
|
8月21日 |
鈴木 |
1234 |
9:00~18:00 |
|
15 |
|
|
|
|
|
|
=VLOOKUP(
F1,
B3:E14,
2,
0)
一覧から日付を指定して右側のデータを呼び出します
例1)=VLOOKUP(F1,B3:E14,2,0)
例2)=VLOOKUP(F1,B:E,2,0)
データが多い場合列を指定した方が良い
古いエクセルだと範囲の最初の列を小さい順に並び変えておく必要がありました。そのため列タイトルがあるとひっかかるため「B3:E14」のように正確に範囲を指定する必要がありました。
・担当者を呼び出す(
検索値を
範囲から検索して
指定した列の値を返します)
=VLOOKUP(
F1,
B:E,
2,
0)
・内線を呼び出す(
F1を
B列を検索して
3列目の値 B C Dを返します)
=VLOOKUP(
F1,
B:E,
3,
0)
・受付を呼び出す
=VLOOKUP(
F1,
B:E,
4,
0)
※注意:検索値が複数ある場合
検索の型0の場合:
範囲内を上から検索して合致した値を見つけるとそれ以上探しませんので最初に見つけた値が呼び出されます。一致したセルが無い場合は「#N/A」エラーになります
検索の型1の場合:
範囲内のすべて検索して同じ検索値があると上書きされ最後の値が呼び出され、無いと近似値(小さい値)が選ばれます。近似値(小さい値)が無い場合は「#N/A」エラーになります
「#N/A」エラーを表示したくない場合、または指定の文字を出す場合
IFERROR(
テストする値,
エラーの時の値)関数を使います
=IFERROR(
VLOOKUP(F1,B:E,4,0),
"")
旧エクセルの場合IFERRORが使えないのでISERRORを使います
=IF(ISERROR(
VLOOKUP(F1,B:E,4,0)),
"",
VLOOKUP(F1,B:E,4,0)))
エラーの時の値はダブルクォーテーションで囲う必要があります
空白の場合:「
""」
文字入力:「
"検索値が見つかりません"」
※
結果がエラーになる、日時を呼び出せない場合
2通りが考えられます
・指定日時の担当を呼び出す場合
=VLOOKUP(
検索値,
範囲,
列番号,
検索の型)
=VLOOKUP(
"8月18日",
B3:E14,
2,
0)
1つ目:
範囲の日時が文字列で入力されている場合
「#N/A」エラーが表示されます
検索値は「"8月18日"」と直接指定した場合「8月18日」という数字と漢字の文字列を探します
範囲の日時も文字列で入力されていれば呼び出せますが、通常セルにある日時はシリアル値として認識されます
範囲の日時:「8月18日」シリアル値「43695」
検索値:「"8月18日"」文字列
文字列の「8月18日」を探してもシリアル値「43695」とは一致しません
対応策:
検索値の8月18日をシリアル値に変換します
=VLOOKUP(
VALUE("8月18日"),
B3:E14,
2,
0)
※(検索値の年号を省略すると今年になります)
2つ目:日時をセルで指定した場合はシリアル値になりますが
何かの表や去年から使いまわして日付をコピーした場合
「8月18日」が実は「2017年8月18日」など今年ではない時は見た目は一緒でも中身は「2017年8月18日」と「2018年8月18日」なので一致しませんので「#N/A」エラーが表示されます
対応策:セルをクリックして見ると年号も表示されるので今年に直します
また検索している関数がTODAYやNOWの場合
TODAYもNOWも表示を日付にすれば「11月21日」ですが
シリアル値が違うので一致しません
=NOW() 45617.704166667
=TODAY() 45617
NOW()は小数点以下に時間を表示しています
今日を検索するにはNOW()ではなくTODAY()を使います
2020年新関数「XLOOKUP」が追加されました
表からの抽出などで「SEARCH」「INDEX」「MATCH」「ISERROR」「IFERROR」などを組み合わせなくても
「XLOOKUP」1つで縦や横の検索、エラー時の表示が簡単に抽出できるようになりました
「XLOOKUP」はこちら
VLOOKUP関数とよく使うエクセル関数