スプレッドシートをデータベースのように利用する場合は検索や抽出といった作業が必然となります。そんな時に知っておくと便利なVLOOKUP関数について解説します。
VLOOKUP関数とは垂直方向(Vertical)に指定した範囲を検索して該当行を見つけ、その行の指定した列に入っている値を返す関数です。
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関数を使うために複数の条件を結合した新たな項目を作るという力技もないことはないですが、素直にQUERY関数を使うことをオススメします。
なお、似たようなことはindex関数とmatch関数を組み合わせることでも可能です。
VLOOKUP関数が意図した通りに動かない場合は、最後の『並べ替え済み』の引数にFALSEを入れるようにしてみてください。省略した場合はTRUEとなり、最も近い一致(検索キー以下)が返され、検索列のすべての値が検索キーよりも大きい場合は、『#N/A』が返されます。VLOOKUP関数が使われる場合、『完全一致』で使われることが多いので、FALSEを入れる方が多いと覚えておきましょう。FALSEにした場合、検索キーに一致する項目がない場合はエラーを返します。
VLOOKUP関数について解説しました。スプレッドシートにはQUERY関数という便利な関数があるので無理してVLOOKUP関数を使う必要はないですが、エクセルを使う人との共同編集したり共有する必要がある場合などではVLOOKUP関数を使用した方がいいのかもしれません。
スプレッドシートの関数の基本的なものを紹介しています。
スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。