
VLOOKUP関数(垂直検索関数)は、スプレッドシート(GoogleスプレッドシートやExcel)でよく使われる関数の一つです。指定した値を検索し、その値に対応するデータを別の列から取得することができます。
VLOOKUP関数の基本構文
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
- 検索値:検索したい値を指定。
- 範囲:検索対象となるデータの範囲を指定。
- 列番号:検索対象の範囲内で取得したいデータの列番号。
- 検索方法:TRUE(近似一致)またはFALSE(完全一致)。
基本的な使用例
例えば、以下のような表があるとします。
A列(ID) | B列(名前) | C列(年齢) |
---|---|---|
101 | 田中 | 25 |
102 | 佐藤 | 30 |
103 | 鈴木 | 28 |
この表から、ID「102」の名前を取得する場合、次のように記述します。
=VLOOKUP(102, A2:C4, 2, FALSE)
結果は「佐藤」となります。
VLOOKUP関数の応用
別のシートを参照する
データが異なるシートにある場合、範囲
の指定を変更します。
=VLOOKUP(102, シート名!A2:C4, 2, FALSE)
「シート名」の部分を実際のシート名に置き換えて使用します。
近似一致を利用する(範囲検索)
例えば、テストの点数に応じた評価を出したい場合。
A列(点数) | B列(評価) |
0 | D |
60 | C |
75 | B |
90 | A |
このとき、80点の評価を取得するには以下のように記述します。
=VLOOKUP(80, A2:B5, 2, TRUE)
この場合「75」の行が該当し「B」となります。
注意点:近似一致を使う場合、検索対象の範囲は昇順に並べておく必要があります。
複数条件で検索する
VLOOKUP関数は1つの条件で検索する関数ですが、複数条件を使いたい場合はARRAYFORMULA
やFILTER
関数と組み合わせる方法があります。
複数条件を結合して検索
例えば名前と年齢の2つの条件で検索したい場合、
=VLOOKUP(A2&B2, ARRAYFORMULA(C2:C10&D2:D10), 2, FALSE)
この方法では検索範囲内の複数列を結合し、検索値も結合することでVLOOKUPでの検索が可能になります。
INDEX & MATCH関数を利用する
VLOOKUPでは左側の列を検索することができませんが、INDEX関数とMATCH関数を組み合わせることで柔軟な検索が可能になります。
=INDEX(B2:B10, MATCH(102, A2:A10, 0))
この方法では、任意の列からデータを取得できます。
VLOOKUP関数のエラー対応
VLOOKUPを使うとエラーが発生する場合があります。代表的なエラーとその対処法を紹介します。
#N/Aエラー(検索値が見つからない)
検索値が見つからない場合に発生します。これを防ぐには、IFERROR
を使ってエラーハンドリングを行います。
=IFERROR(VLOOKUP(102, A2:C10, 2, FALSE), "該当なし")
#REF!エラー(列番号が範囲外)
指定した列番号が範囲外の場合に発生します。範囲を見直し、適切な列番号を指定する必要があります。
#VALUE!エラー(検索値の形式が不適切)
検索値とデータの形式が一致していないときに発生します。例えば、検索値が数値であるべきなのに文字列になっている場合です。
=VLOOKUP(TEXT(102, "0"), A2:C10, 2, FALSE)
このようにTEXT
関数を使うことでエラーを回避できます。
まとめ
VLOOKUP関数はスプレッドシートで最も利用される関数の一つで、基本的な検索から応用的な使用方法まで幅広く活用できます。
VLOOKUP関数のポイント
- 基本的な使い方:検索値を指定し、範囲内の対応するデータを取得する。
- 近似一致と完全一致:近似一致は並び替えが必要、完全一致はFALSEを指定。
- 複数条件の検索:
ARRAYFORMULA
やINDEX & MATCH
関数を組み合わせる。 - エラー対応:
IFERROR
を活用し、エラー時の処理を工夫する。
これらのテクニックを活用すれば、VLOOKUP関数をより効果的に使いこなせるようになります。ぜひ実践してみてください!
他にもスプレッドシートに関する記事を上げています。是非色々見てみてください。