VLOOKUP関数|エクセル検索関数の基本
XHacksでは、向上心あるビジネスパーソンと一流のビジネスパーソンを志す学生に向けて、エクセルを中心としたビジネススキルを紹介しています。
XHacksでは「テーマ別スキル+アルファ」をコンセプトに「とりあえず動けばいい」から「華麗に動かす」へとシフトさせる解説を心がけています。
-------------------------------------------------------------------------------
サマリ
【テーマ】INDEX関数の使い方
【+アルファ】VLOOKUP関数は最も基本的なエクセルの関数の1つです。しかし、シートが重くなりがちで、制約も多いので使い勝手が良いとは言えません。INDEX関数を使用した検索について、やや応用的な観点を含めてみていきましょう。
【コンテンツ】
1. VLOOKUP関数の使い方
2. MATCH関数の使い方
3. VLOOKUP関数の弱点とは?
4. より快適にINDEX関数を使うためには?
---------------
最も基本的なビジネススキルの1つとして挙げられるのがMicrosoft Officeです。
その中でも、Microsoft Excelは使用されることが多く、簡易的なデータベース構築から高度な金融のシミュレータまでさまざまな場面で利用されています。
このため、向上心あるあらゆるビジネスパーソンと、一流のビジネスパーソンを目指す学生にとって、エクセルを使用できるようにすることは必須ともいえるのです。
このページでは、頻繁に使用される関数の1つであるVLOOKUP関数をマスターしたうえで、制約の多いVLOOKUP関数から脱却するところまでをサポートします。
VLOOKUP関数の使い方
VLOOKUP関数は最も基本的なエクセルの関数の1つです。
数式は下のとおりです。
=VLOOKUP(A1, B1:C10, 2, FALSE)
これを日本語に書き下すと、「B1:C10の範囲の一番左の列において、A1と一致するものが何行目にあるかを確認する。B1:C10の範囲において、左から2つ目、上から先ほど確認した行数番目のセルを表示する。」になります。
少し厄介ですが、指定した範囲の一番左の列から検索するというところがポイントです。
辞書の索引をイメージするとわかりやすいこともあるようです。
現段階では、4つ目の引数であるFALSEについては考えなくて結構です。
はじめのうちは少しわかりづらい関数なので、例を多く挙げます。
上の表において、各数式で表示される値は左に示したとおりです。
=VLOOKUP("P", A1:E5, 2, FALSE) ・・・ R
左端の値がPの列の、左から2番目の値=R
=VLOOKUP("P", A1:E5, 5, FALSE) ・・・ D
左端の値がPの列の、左から5番目の値=D
=VLOOKUP("X", A1:E5, 3, FALSE) ・・・ N
左端の値がXの列の、左から3番目の値=N
=VLOOKUP("H", A1:E5, 1, FALSE) ・・・ H
左端の値がHの列の、左から1番目の値=1
=VLOOKUP("T", A1:E5, 4, FALSE) ・・・ M
左端の値がTの列の、左から4番目の値=M
左端の列から「検索」し、3つ目の引数の列から値を取り出します。
VLOOKUP関数のTRUEとは?
VLOOKUP関数では、4つ目の引数に「FALSE」と書きました。
=VLOOKUP(A1, B1:C10, 2, FALSE)
4つ目の引数をTRUEにしたときの挙動について簡単に触れます。
ただし、TRUEを指定したときの近似一致は非常に使いづらいうえ、メリットもあまりないので原則として使いません。
◆検索範囲が昇順にソートされている場合のみ使用可
近似一致は、検索範囲が昇順にソートされている場合のみ使用できます。
これ以外の場合は正しく動作しません。
◆検索値を超えない最大値に反応する
上記のような表を参照した場合は、次のような挙動になります。
=VLOOKUP(1, A1:E5, 3, TRUE) ・・・ G
完全一致する項目がある場合はFALSEのときと同じです。
=VLOOKUP(1.4, A1:E5, 4, TRUE) ・・・ D
1.4を超えない範囲の最大値なので、1が書かれた行の左から4番目の値が表示されます(1行目4列目のD)。
=VLOOKUP(2.1, A1:E5, 3, TRUE) ・・・ O
2.1を超えない範囲の最大値なので、2が書かれた行の左から3番目が表示されます。
◆文字列の場合も検索値を超えない最大値
同じく昇順にソートされている必要がありますが、文字列の場合も数字の場合と同じ挙動になります。
=VLOOKUP("AZ", A1:E5, 2, TRUE)
AZを超えない範囲の最大値なので、AKJHの行になり、左から2番目のGが表示されます。
=VLOOKUP("B", A1:E5, 2, TRUE)
Bを超えない範囲の最大値なので、同じくAKJHの行になり、Gが表示されます。
=VLOOKUP("D", A1:E5, 3, TRUE)
Dを超えない範囲の最大値なので、CIOPの行になります。左から3列目でWが表示されます。
HLOOKUP関数の使い方
HLOOKUP関数は、VLOOKUP関数の水平版です。
=HLOOKUP(検索値, 範囲, 行数, FALSE)
VLOOKUP関数で左端の行を検索する代わりに、HLOOKUP関数は一番上の行を検索します。
VLOOKUP関数を理解していればつまずくことはないと思いますので、いくつかの例を挙げることで説明とさせていただきます。
=HLOOKUP("L", A1:E5, 3, 0)
1行目がLの列の3行目なのでXを表示します。4つ目の引数0は、FALSEと同じなので完全一致検索です。
=HLOOKUP("U", A1:E5, 4, 0)
1行目がUの列の4行目なのでKを表示します。
=HLOOKUP("P", A1:E5, 5, 0)
1行目がPの列の5行目なのでMを表示します。
INDEX関数の使い方
表型の範囲から特定のセルの値を取り出す関数には、INDEX関数もあります。
INDEX関数は2通りの指定方法があります。
まずは1つ目の指定方法である「INDEX(配列, 行番号, 列番号)」から確認します。
仕組みは簡単で、範囲内の行番号と列番号を指定して、特定のセルの値を表示する関数です。
上記の表にINDEX関数を使うと次のようになります。
=INDEX(A1:E5, 1, 2)
1行目2列目なので、Aが表示されます。
=INDEX(A1:E5, 4, 3)
4行目3列目なのでKが表示されます。
INDEX関数は、VLOOKUP関数とは異なり、検索するというよりは指定して表示するというニュアンスの関数です。
このため、1つ1つを照合して検索するVLOOKUP関数よりも動作が軽快な関数となっています。
INDEX関数をVLOOKUP関数の上位互換にする
しかし、上のようなINDEX関数の使い方では、VLOOKUP関数の代用にはなりません。
ここままでは検索ができないためです。
これ以降では、INDEX関数によって検索を行う方法について扱います。
ここから先は
¥ 300
この記事が気に入ったらチップで応援してみませんか?