縦方向検索(VLOOKUP)

広告

VLOOKUPは表形式になってるデータの中から、検索対象の列を検索して、合致した行に含まれる指定した列番号の値を取得するための関数です。

=VLOOKUP(検索値, 対象範囲, 取得する列番号、検索タイプ)

対象範囲には表形式の左上から右下のセル範囲で指定します。また検索の対象となる列は一番左にある列で固定となっています。左端にある列を検索していき、該当する行が合った場合にその行の中で引数に指定した列番号(左から順に1,2,3,...)のセルを取得します。

検索タイプにはTRUR又はFALSEを指定します。省略した場合はTRUEとなります。TRUEの場合には検索した値が見つからなかった場合に、検索した値未満で最大の値を検索結果とします。(これが成功するには検索対象の列が昇順で並んでいなければなりません)。

例えば次のような記述となります。

=VLOOKUP("山田", A1:C10, 3, FALSE)

この例の場合、セルA1からセルC10までのセル範囲の表形式のデータから、A列の値を検索し、見つかった場合はその行の左から3番目のセル(C列の値)を取得します。

では実際に試して見ます。

1.元となるExcelを用意する

下記のようなExcelシートを用意します。

VLOOKUP関数のテスト

社員番号、社員名、有給消化日数の表があります。今回は社員番号で検索して、検索した社員の名前と有給消化日数を表示してみましょう。

2.検索結果を表示するセルを選択

まず名前を検索してみます。結果を表示するセルを選択します。

VLOOKUP関数のテスト

結果を表示するセルは「C9」です。

3.関数の設定

挿入する関数を選択します。メニューの「挿入」から「関数」を選択します。

VLOOKUP関数のテスト

「関数の検索」で「vlookup」を入力し、「関数名」で「VLOOKUP」が選択されていることを確認してから「OK」ボタンをクリックします。

VLOOKUP関数のテスト

まず「検索値」に検索する値を入力します。固定の値でも構いませんが、今回はセルB9に入力された値を検索したいので、値ではなくセルを指定しています。

VLOOKUP関数のテスト

次に「範囲」には検索対象となる表全体をセル範囲で指定します。ただし見出しは検索する必要がないので実際のデータが含まれているところだけで構いません。

VLOOKUP関数のテスト

「列番号」には表の左から数えて何番目の列の値を取得するかを数値で指定します。今回は社員名なので2番目です。

VLOOKUP関数のテスト

「検索の型」には検索が成功しなかった場合に近い値を表示するかどうかです。今回はFALSEにします。

VLOOKUP関数のテスト

最後に「OKボタンをクリックして下さい。

4.結果の表示

まだ検索する値を入力していないので、検索が成功せずに「#N/A」と表示されます。

VLOOKUP関数のテスト

ではセルB9に社員番号を入力してみて下さい。

VLOOKUP関数のテスト

入力した社員番号の社員名が表示されます。

では同じように社員番号で検索して社員の有給消化日数を表示してみましょう。セルD9に次のように入力します。

=VLOOKUP(B9,B3:D6,3,FALSE)

取得する列番号を3番目の列、つまり有給消化日数が表示された列に変更したものです。

VLOOKUP関数のテスト

違う社員番号を入力すれば、検索した社員番号の社員名と有給消化日数が表示されます。

VLOOKUP関数のテスト

検索タイプがTRUEの場合

検索タイプをTRUEにした場合(又は省略した場合)は、検索した値より小さく一番近い値が検索結果と一致したものと見なされます。こちらも試してみましょう。

次のようなExcelフィルを用意します。

VLOOKUP関数のテスト

社員の家賃に対する補助金額を計算するだけのものです。補助金額を表示するセルC9に次のように入力して下さい。

=VLOOKUP(B9,B3:C6,2,TRUE)

VLOOKUP関数のテスト

では家賃を計算するためセルB9に家賃を入力して下さい。

VLOOKUP関数のテスト

今回は「27000」と入力しました。ぴったり一致する値はありませんので、「27000」を越えない一番近い値である「20000」が検索に一致したものとみなし、結果として「15000」が取得されます。

( Written by Tatsuo Ikura )