今回はスプレッドシート・エクセルの関数「VLOOKUP」について解説いたします。
本記事は、主に
「引き継いだファイルでvlookupが使われてたから理解したい」
「改めて理解し直したい」など、
既に使われている方を対象とした記事となっています。
「これから新たに関数を学びたい方」は、
後継の関数「XLOOKUP」をオススメいたしますので、
以下の記事をご参照ください。
[基本編] VLOOKUPは「縦から横に検索」
「VLOOKUP」とは、”縦から横に検索”する関数で、
基本の書き方は以下の通りです。
=VOOKUP( [縦に検索する値] , [対象範囲] , [何列移動するか] )
※上記では、オプションの記述は省略してあります
①[対象範囲]の一番左にある列で
②一番上から順番に、[縦に検索する値]を探し
③該当する値を見つけたら[何列移動するか]の数字分、右に移動
⇒移動した先のセルの値を結果として出力
このような流れで動きます。
実際に、以下の表から
「東京都の都庁所在地」を出力する流れを見てみましょう。

うまく使えない時はここをチェック
VLOOKUPが思った通りに動かないときは、以下が原因であることが多いので確認してみましょう!
基準の列は必ず「検索範囲の一番左」
VLOOKUPは、指定した範囲の左端の列を基準に検索します。
もし基準にしたい列が途中にある場合は、
その列を範囲の一番左に持ってくる必要があります。
例)「県庁所在地」から「人口」を参照したい場合、
「都道府県庁所在地」の列が一番左にくるよう、
[対象範囲]のスタートはC列からになります

返せるのは基準列より右側の情報だけ
基準列より左にあるデータは取得できません。
「左の情報を取りたい」場合は、
INDEX関数やXLOOKUP関数を使う必要があります。
列番号は「1」から始まる
地味に多いエラー原因がこちら。
[対象範囲]の一番左の列は「1」です。
エラーになってしまう場合は、
・一番左を「0」としてカウントしていないか?
・そもそも列番号間違っていないか?
この点を確認してみましょう!

上から順に見つかったものが優先される
同じ値が複数ある場合、デフォルトでは
最初に出てきた行の情報が返ってきます。
下の方のデータを取りたいときは、別の工夫が必要です。(後述の「オプション」参照)
[応用編] オプションでさらに便利に使おう
VLOOKUPには、第4引数として
「検索の方法を指定するオプション」があります。
これは「完全一致で探すか」「近い値(近似値)を探すか」を
切り替えるオプションです。
※スプレッドシートの説明では「並べ替え済み」と表記されていますが、
機能としては「完全一致か近似値か」と同様です。
理解のしやすさを優先して、ここでは「完全一致/近似値」として解説します。
▼FALSE(完全一致)
指定した値と完全に一致するもののみを返します。
通常はこちらを使うのが安心です。
▼TRUE(近似値)
検索する列があらかじめ昇順に並べ替えられている場合、
指定した値より「小さい中で最も近い値」を返します。
注意したいのは、「最も近い値」と書かれているものの
「検索キーを超えない値」しか返ってこない点です。
このオプションは文字列だと挙動がさらに複雑になり、
思った通りに動かないことも多々あります。
実務の中で「近似値指定が必須」になる場面は非常にまれで、
私自身10年以上使っていても必要になったケースはほとんどありません。
したがって、よほど明確な目的がある場合以外には、
基本的には FALSE(完全一致)を指定することをオススメします。
まとめ
本記事ではVLOOKUPの基本から注意点、オプションまでを解説しました。
冒頭でも触れたように、今から新しく覚えるならXLOOKUPを使う方が柔軟性は高いです。
しかし、VLOOKUPには「よりシンプルに書ける」というメリットもあります。
特に古いファイルや引き継いだ資料では、
まだまだVLOOKUPが現役で使われているケースは少なくありません。
そのため、データ処理に関わる人にとっては「必修科目」と言えるでしょう。
上手に使い分けながら、
あなたの“面倒くさい”作業の改善にお役立てください!




コメント