【表計算ソフト】VLOOKUP関数の使い方

VLOOKUP関数は一覧データからデータを抽出するための関数です。
範囲内の1行目で行を特定し、その行の指定列のセルの値を返します。
慣れる(理解する)までは使い方が難しいかもしれませんが、一度理解してしまえば非常に便利な関数なので、ぜひしっかりと理解して使えるようになっておいた方がいい関数です。
VLOOKUP関数で参照する一覧データには、守らなければいけないルールがあるのでまずはそこから説明します。
キーとなる項目は、一覧(マスタ)データの1番左端の列にないといけない。
キーとなる項目は、必ずVLOOKUP関数の2番目の引数で指定されるセル範囲の1番左端にないといけません。セル範囲の2番目以降の項目をキーにすることはできません。
近似値で検索する場合は、キーとなる項目は、昇順に整列されていないといけない。
4番目の引数で1もしくはTRUEを指定して近似値検索する場合は、キーとなる項目は、必ず昇順に整列されていないといけません。昇順に整列されていなくてもエラーにはなりませんが、意図しない結果になりますので注意してください。
データを追加した後に、正しく整列されていないと、正しい値にならない場合がありますが、エラーにもならないので非常に気付きにくいです。
この関数は、LibreOffice Calc と Microsoft Excel両方で使えます(画面はLibreOfficeです)
VLOOKUP(検索基準,行列,インデックス,並べ替え)
項目 説明
検索基準 検索する値です。固定値でもいいですし、セルの参照でもかまいません。
行列 一覧データをセル範囲で指定します。
2列以上である必要があります。1番左端がキー項目で整列されている必要があります。
インデックス マッチした行の何番目のデータを参照するのかを指定します。
行列で指定したセル範囲の左端が1で右に行くに従って1づつ増えます。
並べ替え 1にすると必ず整列させておかないといけません。この引数は省略することが可能です、省略値は1です。
0(FALSE):完全に一致したデータのみ抽出。
1(TRUE):近似値(検索基準の値を超えない最も近い値の行が抽出されます)

まずは完全一致(4番目の引数に0を指定)の例です。

関数 返り値
検索基準をセルで指定
=VLOOKUP($B$1,$A$7:$C$11,2,0)
検索基準を固定値で指定
=VLOOKUP(20,$A$7:$C$11,2,0)
ぶどう
商品一覧のデータ(2番目の引数)から、商品番号(1番目の引数)を指定して商品名(3番目の引数)を抽出する例です。(3番目の引数で商品名の列の2を指定しています)
この例では、インディクスに2を指定しているので、2番目の引数は$A$7:$B$11でも正常に動作します。インデックスよりも大きい範囲で指定するのは問題ありません。
関数 返り値
検索基準をセルで指定
=VLOOKUP($B$1,$A$7:$C$11,3,0)
検索基準を固定値で指定
=VLOOKUP(20,$A$7:$C$11,3,0)
800
商品一覧のデータ(2番目の引数)から、商品番号(1番目の引数)を指定して単価(3番目の引数)を抽出する例です。(3番目の引数で単価の列の3を指定しています)
関数 返り値
=VLOOKUP(21,$A$7:$C$11,4,0) #N/A
4番目の引数で0を指定して完全に一致したデータを抽出にしているので、商品一覧のデータ(2番目の引数)の1列目にないデータで検索した場合、返り値は#N/Aになります。

エラーになる例です

関数 返り値
=VLOOKUP($B$1,$A$7:$C$11,4,0) エラー:502
商品一覧のデータ(2番目の引数)が3列しかないのにインデックス(3番目の引数)で4を指定しているのでエラーになります。

近似値(4番目の引数に1を指定)の例です。

関数 返り値
検索基準をセルで指定
=VLOOKUP($B$1,$A$6:$D$12,3,1)
検索基準を固定値で指定
=VLOOKUP(5000000,$A$6:$D$12,3,1)
20%
税率のデータ(2番目の引数)から、課税退職所得金額(1番目の引数)を指定して税率(3番目の引数)を抽出する例です。(3番目の引数で税率の列の3を指定しています)
近似値検索なので、1列目に同じデータがなくても意図した行が抽出され(3,300,000以上6,949,000以下)返り値が返ってきます。
2番目の引数で指定する行列は、名前を付けておくと可読性が上がり強くお勧めします!
関数 返り値
=VLOOKUP($B$1,税率表,3,1) 20%
このように、2番目の引数を名前で指定することができるので、後から見た時や、他の人が見た時にわかりやすくなります。
また、複数個所でVLOOKUP関数を使用していても、名前で指定しておくと、データを追加した時など、名前で指定されている範囲の確認だけでよくなります。

コメント