VLOOKUP関数の使い方。スプレッドシート活用はまずこの関数から

VLOOKUP関数の使い方。スプレッドシート活用はまずこの関数から参照
この記事は約6分で読めます。
Google スプレッドシートでたくさんのデータの中から欲しい文字列(値)を探し出したい時に使う関数です。 VLOOKUP関数を使えば、データが追加されて入力しされた場合でも自動で指定した条件のもと検索が可能です。在庫一覧などから仕入れ値や在庫数を検索したい場合はこの関数を利用しましょう。それでは解説します。

VLOOKUP関数とは?

検索値と一致した値の行に含まれる値を返す関数。 マイクロソフトのExcelにも存在する関数であり、 同じように利用することが可能な関数だ。

VLOOKUP関数の構文

VLOOKUP(検索値, 範囲, 列番号, [並べ替え済み]) VLOOKUP関数には4つの引数(ひきすう)が存在する。それぞれの引数の意味が分かればOKだ!
  • 検索値:どのデータで
  • 範囲:どこを検索して
  • 列番号:どの列にある値を取るか
  • [並べ替え済み]:「完全一致」の場合は「FALSE」、「検索値の中で最も大きい値(近似一致)」の場合は、「TRUE」を選択。

VLOOKUP関数の使い方

VLOOKUP関数を入力し、まずは検索キー(1個のセル)を指定します。 =VLOOKUP(A1, 検索キーの次は、範囲を指定します。 ※範囲の左端の列から検索キーと一致する値を上から下に探します。 =VLOOKUP(A1,B1:D20, 次に値を返す列の番号を指定します。この時、先頭の列から1と数えます。 =VLOOKUP(A1,B1:D20,3, 最後に検索対象の列(指定した範囲の先頭列)が並べ替え済みであるかを指定します。省略可能。TRUE/FALSEで指定します。 簡単に言うとTUREで近似値を、FALSEで一致した値が返されます。 =VLOOKUP(A1,B1:D20,3,FALSE) 上記の関数の例ですと、「A1をB1〜D20範囲の1列目から一致する値を探し当てて、その探し当てた行の3列目にある値を返す」という意味合いになります。 ちなみに、範囲は同じシートである必要はありません。別シート内のデータを、範囲として指定することでも可能です。

VLOOKUP関数の使い方

一番左の列の「品番」を検索し、「容量」「カラー」「商品名」を取得する。 セルB1、C2、E3にVLOOKUP関数が入っており、「品番MK4H3J/A」に対応する「容量」「カラー」「商品名」を取得する。 画像の表に数行であれば目視で判別できるが、何百、何千行と膨大な数になってくると目視ではもう無理だ。 そんな時にこのVLOOKUP関数があると便利だな。

VLOOKUP関数の活用

VLOOKUP関数を使用するメリットとしては、範囲内のデータの中から列に対して値を検索することが可能なところです。 ですので、抽出したい範囲を広げたり、範囲内のデータを更新することで、いつでも最新の値を検索するすることが可能です。 会社備品の在庫確認などたくさんのデータの中から、必要なデータを探すと言う場面で使用することが多いかと多いかと思います。 範囲さえ指定してしまえば、後で「XXの在庫数や価格を確認したい」という要望にも関数の変更のみで実現が可能です。 規模の大きなデータ管理にも柔軟に対応ができますので、非常に使い勝手の良い関数です。

エラーが起こる場合の対処法

続いて、VLOOKUP関数は範囲内先頭列の値と一致した場合に働く関数なので、検索に一致しない場合などエラーが表示されます。エラーが起こる理由の一部をご説明します。

#VALUEが返される

第三要素の番号の値が、範囲の列の数よりも大きい場合に#VALUEが返されます。関数の範囲及び番号をもう一度確認しましょう。

#N/Aが返される

検索キーと一致する値が先頭列に見つからなかった場合に表示されます。

返される値が異なる

VLOOKUP関数は範囲の先頭列から一致する値を探すという処理を行いますが、この処理は上から下に順番に行われます。 その為、検索値と同じ値が2個以上ある場合に関しては1番上にある検索行の値を返してしまいます。 検索値と同じ値は1つにするか、他の関数と組み合わせて使いましょう。

他の関数と組み合わせて便利に使う

IMPORTRANGE関数と組み合わせる

IMPORTRANGE関数と組み合わせることで、別のスプレッドシートの表をVLOOKUPで参照することができます。
=VLOOKUP(検索キー, IMPORTRANGE(“スプレッドシートのURL”, 範囲)), 番号, [並べ替え済み])
例として以下のように記述するぞ。
=VLOOKUP(A1, IMPORTRANGE(“https://docs.google.com/spreadsheets/d/xxxxxxxxxx”, “シート1!A1:B10”)), 2, FALSE)
「別シートのA1からB10」の範囲のA列でA1セルと完全一致のセルの2列目(B列)を呼び出す、という式。 FALSEは完全一致だ。基本的にTRUEよりもよく使う。 私自身、頻繁に使うことの多い関数なので覚えておくに越したことはない。かなり使えるぞ。 場面としては、管理表が別にあって自分の管理シートに情報を呼び出したりするケースでよく使うぞ。

IMPORTRANGEと組み合わせる時の注意点

一発で式をVLOOKUPとIMPORTRANGEを組み合わせた記事を書くと、エラーになるぞ。 スプレッドシートの仕様なのですが、先にIMPORTRANGEで「アクセスを許可」ボタンを押しておかないと、正しく動作してくれない。 先にIMPORTRANGEで式を作り、「アクセスを許可」ボタンを押してからVLOOKUPを組み合わせて欲しい。

VLOOKUP関数の注意点

ここまでVLOOKUP関数のすべてを教えてきた。しかし、VLOOKUP関数には欠点がある。 それは一番左の列の値しか「検索値」に指定できないということだ。
一番左側の値を「検索値」に指定すると・・・・
エラーになってしまう。これがVLOOKUP関数の弱点だ。

VLOOKUP関数で左側を引っ張ることは可能か?

VLOOKUP関数には先ほど話した通り、左側を指定することはできない。指定する場合は、表全体を作り変える必要がある。 しかし、サラリーマンは上司の命令や顧客の依頼に背くことは難しい局面が多々ある。大規模な表の場合、時間に余裕がなく、作り変えることができないこともあるだろう。 一応回避方法もあるので、伝授する。
先ほどの表の下の左側に「64KB」と記載する。問題は次だ!
VLOOKUP関数をB9に記載し、「=VLOOKUP(A9,{B$6:B$7,A$6:A$7,C$6:C$7,D$6:D$7},2,FALSE)」と記載する。 範囲「 {B$6:B$7,A$6:A$7,C$6:C$7,D$6:D$7} 」の記述方法はあまり見慣れないだろう。 これはA列、B列、C列、D列の並びを無理やり、B列、A列、C列、D列に並び替えている。 つまり、現在A列に記載された64KBに合わせるために、商品名の列と容量の列と入れ替えた訳だ。

まとめ

Googleスプレッドシートにはオンラインツールならではの特徴的な関数の他、シンプルな関数も備わっている。もちろん配列関数に当たるARRAYFORMULA関数も利用可能!1行目に組み合わせた関数を記述するだけで動かすことが可能だ。 是非、VLOOKUP関数をマスターして業務効率を上げてくれ。