スプレッドシートをデータベースのように利用する場合は検索や抽出といった作業が必然となります。そんな時に知っておくと便利なVLOOKUP関数について解説します。
VLOOKUP関数とは
VLOOKUP関数とは垂直方向(Vertical)に指定した範囲を検索して該当行を見つけ、その行の指定した列に入っている値を返す関数です。
- 特定の値を列から検索し、該当行の指定列の値を返す関数
- VはVertical(垂直)の意で、縦方向に検索する
- 検索キーに文字列を使用する場合は""(ダブルクォーテーション)で括る
- スプレッドシートにはQUERY関数があり、場合によってはそちらの方が便利
VLOOKUP関数の使い方
VLOOKUP関数の構文は下記の通りとなります。
=VLOOKUP(検索キー, 範囲, 番号, [並べ替え済み])
検索キーとは検索する値で、セルや数値、文字列を入れます。文字列の場合は""(ダブルクォーテーション)で括る必要があります。範囲は検索対象の範囲で、先頭列が検索キーによって検索されます。番号は値を返す列の番号で、範囲の先頭列が1となります。並べ替え済みのところは規定値はTRUEで検索対象の列が並べ替え済みであるかどうかを指定します。FALSEの場合、完全一致のみが返され、FLASEが推奨されています。
下記のような『成績表』というシートから別シートにvlookup関数を使って名前を打ち込んだら順位が表示されるようにしてみましょう。
スプレッドシートを別シートで読み込むようにしたいので新しいシートを作成し、名前を打ち込むセル(B3)と、順位を表示するセル(B4)を作りました。
B4のセルにVLOOKUP関数を下記のように打ち込んでいます。
=vlookup(B3,'成績表'!B3:G9,6,false)
B3のセルに入力された検索キー(ここでは松本)を、成績表という名前の別シート内のB3からG9の範囲内の先頭列であるB列から探し、該当する行の6列目(順位)を返すようになっています。
VLOOKUP関数はプルダウンを連動させる方法について解説した記事内でも使用しているので合わせて参考にしてみてください。
VLOOKUP関数は複数条件に適していない
Vlookup関数では複数条件を指定することができません。VLOOKUP関数を使うために複数の条件を結合した新たな項目を作るという力技もないことはないですが、素直にQUERY関数を使うことをオススメします。
なお、似たようなことはindex関数とmatch関数を組み合わせることでも可能です。
VLOOKUP関数がエラーなどで動かない場合
VLOOKUP関数が意図した通りに動かない場合は、最後の『並べ替え済み』の引数にFALSEを入れるようにしてみてください。省略した場合はTRUEとなり、最も近い一致(検索キー以下)が返され、検索列のすべての値が検索キーよりも大きい場合は、『#N/A』が返されます。VLOOKUP関数が使われる場合、『完全一致』で使われることが多いので、FALSEを入れる方が多いと覚えておきましょう。FALSEにした場合、検索キーに一致する項目がない場合はエラーを返します。
まとめ
VLOOKUP関数について解説しました。スプレッドシートにはQUERY関数という便利な関数があるので無理してVLOOKUP関数を使う必要はないですが、エクセルを使う人との共同編集したり共有する必要がある場合などではVLOOKUP関数を使用した方がいいのかもしれません。
スプレッドシートの関数の基本的なものを紹介しています。
スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。