Excel(エクセル)のVLOOKUP関数の使い方を紹介します。VLOOKUP関数とは何かといった基本的なことから、複数条件に合致するデータを取得するための応用的なテクニックまで丁寧に解説しています。
ビジネスの場でよく使用されるVLOOKUP関数の使い方を覚え、様々なシーンで活用できるようになりましょう。
目次
VLOOKUP関数とは
VLOOKUP関数は、 垂直を意味する英語「Vertical」のVと、探すという意味の英語「LOOKUP」があわさった関数です。縦方向にデータを検索し、一致した値と同じ行にあるデータを返します。
例えば「りんご」と指定したら、画像のような買い物メモからりんごの購入金額を自動で取得するといったことが可能になります。
ちなみに、検索する値が行方向(横)に並んでいる場合はHLOOKUP関数利用します。 水平を意味する英語「Horizontal」のHと、探すという意味の英語「LOOKUP」をあわせた名称となっています。
関連:ExcelのVLOOKUP関数の使い方|別シートを参照する方法など
VLOOKUP関数の使い方
VLOOKUP関数を正しく使うためには、参照する表のデータをルールに従って整えておく必要があります。具体的なVLOOKUP関数の使い方として、まずは書式から見ていきましょう。
- VLOOKUP関数の書式
- VLOOKUP関数の基本的な使い方
VLOOKUP関数の書式
VLOOKUP関数は引数が4つあり、書式は「=VLOOKUP(検索値, 範囲, 列番号,[ 検索の型])」です。次の章でそれぞれの引数の指定の仕方を詳しく解説していきます。
第1引数:検索値
第1引数は「検索値」です。文字列や数値でも構いませんし、セルに入力された値を参照することも可能です。引数に文字や数値を直接指定する場合は、値をダブルクオテーション「””」で囲む必要があります。
例えば「”りんご”」と指定すると表の一番左の列から「りんご」という文字を探し出し、その行の任意の項目を取得することができます。
第2引数:範囲
第2引数は「範囲」です。この引数では、検索に使用するための元データの範囲を指定します。検索値のある列を含め、全ての範囲を指定するようにしましょう。
第2引数を入力する際に、指定したいセル範囲をドラッグで囲むと選択した範囲が自動で入力されます。関数を入力しているシートとは別のシートにある表も範囲として設定することができます。
第3引数:列番号
第3引数は「列番号」です。指定した検索値に合致するものが見つかった場合、同じ行のどの列にあるデータを取得するのかを指定します。
第2引数で指定した範囲の何列目にあるかを数字で指定します。Excel(エクセル)のシートの列番号ではないので注意しましょう。例えば取り出したい値が購入金額の場合、表の3列目にあたるので「3」と入力します。
第4引数:検索の型(FALSE/TRUE)
最後の第4引数は検索の型で、FALSE(完全一致)かTRUE(近似一致)で指定します。省略することが可能で、何も指定しないと自動的にTRUEが適用されます。
それぞれの意味は次のようになります。
- FALSE:完全に一致するデータのみを検索範囲から探し、なければ「#N/A」と表示する
- TRUE:検索値に一番近いデータを範囲から取り出す
VLOOKUP関数の基本的な使い方
関数の引数の書き方が分かったところで、VLOOKUP関数の基本的な使い方を解説します。まず検索して取り出したいデータがある表を用意しましょう。ここでは商品の売上データを使用します。
商品名を検索して、該当する商品の売上金額をD13セルに取り出します。セルに「=VLOOKUP(B13,B2:F11,4,FALSE)」と入力しましょう。
第1引数では検索したい商品名が入力されてるセルB13を、第2引数には情報を検索するために使用するデータ範囲を指定しています。「シート名!セル範囲」と指定すれば別のシート上にあるデータ範囲を指定することも可能です。
また今回の例では売上金額の情報を取り出したいので第3引数には「4」を指定しています。完全一致型で検索したいので、第4引数は「FALSE」となっています。
入力したら「Enter」キーを押しましょう。これでB13セルに入力された商品の売上金額がD13セルに表示されるようになりました。
VLOOKUP関数で複数条件を指定する方法
VLOOKUP関数では基本的には1つの条件しか設定できませんが、検索に使用するデータに工夫を加えることで複数条件に合致するデータを抽出することが可能です。
アンパサンド「&」記号を使用すれば、先ほど紹介した基本的な使い方と同じ方法でデータ抽出ができるのでやり方を解説していきます。
- ステップ1. 項目が複数入ったデータの準備
- ステップ2. 複数項目の条件を結合
- ステップ3. VLOOKUP関数の入力
- ステップ4. 「Enterキー」を押して完了
ステップ1. 項目が複数入ったデータの準備
今回複数条件を指定したいので、指定したい条件が全て入力されているデータ表を準備しましょう。例では「年」、「月」、「売上金額」が入った売上データを使用します。条件となる項目が2つ以上、取り出したいデータが1つ以上になるように項目を用意しましょう。
次のステップで複数条件をつなげた新しい条件を作成するので、表の一番左の列に追加で欄を作成しておきましょう。VLOOKUP関数の検索値がある列は表(検索範囲)の一番左にある必要があるので、必ず左に付け足してください。
ステップ2. 複数項目の条件を結合
先ほど作成した欄に、新しい条件を入れます。例では「〇〇年××月」という複数条件を作成したいので、「年」と「月」のセルを結合させたデータ列を作成することになります。
B3セルに「=C3&”年”&D3&”月”」と入力し、オートフィルで残りのセルを埋めましょう。日付を分かりやすく表示させるため「”年”」と「”月”」も&で結合しています。
ステップ3. VLOOKUP関数の入力
VLOOKUP関数で検索する列として、2つの条件を結合したデータを使用します。ここでは「2022年10月」の売上金額を取得してみましょう。
B12セルの書式設定を文字列に設定してから「2022年10月」と入力します。E12セルに「=VLOOKUP(B12,B3:B10,4,FALSE)」と入力しましょう。第1引数には検索値のあるセルを、第2引数には結合させた条件を含む全てのセル範囲を、第3引数には「売上金額」のデータがある列番号を設定しています。
ステップ4. 「Enterキー」を押して完了
関数を全て入力し終えたら「Enter」キーを押しましょう。指定した複数条件に全て合致する項目の売上金額が取得されました。
このように、アンパサンド記号を用いれば複数の条件を「かつ」でつなぐことができます。もちろん2つ以上の条件を結合させることも可能です。これでVLOOKUP関数で複数条件を指定することができました。
VLOOKUP関数以外で複数条件に一致するデータを抽出する方法
VLOOKUP関数を使わなくても複数条件に一致するデータを抽出する方法があります。今回はINDEX関数とMATCH関数を組み合わせる方法と、FILTER関数を使用する方法の2種類を紹介しますので参考にしてください。
- INDEX関数とMATCH関数で複数条件に一致するデータを抽出する
- FILTER関数で複数条件に一致するデータを抽出する
INDEX関数とMATCH関数で複数条件に一致するデータを抽出する
INDEX関数とMATCH関数を組み合わせて、すべての条件に一致する場合にデータを抽出できるようにする方法を解説します。
先ほどと同じ売上表を用いて具体的な使用方法を見ていきましょう。今回も「2022年10月」の売上金額を取得します。
まず条件を指定するための欄を2つ作成し、「年」と「月」にそれぞれ「2022」と「10」を入力しましょう。
次に検索結果を表示させたいセルに関数を入れていきます。A8セルに「=INDEX(B3:D10,MATCH(B12&B13,B3:B10&C3:C10,0),3)」と入力しましょう。
それぞれの関数の基本形は「=INDEX (配列, 行番号, [列番号])」と「=MATCH (検査値, 検査範囲, [照合の種類])」となり少し複雑ですが、「=INDEX(表全体の範囲,MATCH(条件1&条件2,条件のある範囲1&条件のある範囲2,照合の種類),取得したいデータのある列番号)」となるように入力しています。
これでNDEX関数とMATCH関数を使用しても、複数条件を満たすデータを取得することができました。
INDEX関数とMATCH関数を組み合わせれば、検索列がどの列にあっても必要なデータを抽出するところがポイントです。また条件を連結して新しい条件を作成する手間を省くこともできます。
FILTER関数で複数条件に一致するデータを抽出する
FILTER関数でも複数条件に一致するデータを抽出することができます。これまでの関数と異なるのは、ある一部のデータを取得するのではなく、合致する条件のある行全体を抜き出す(絞り込む)ところです。今回も先ほどと同じ売上表を用いて「2020年6月」の売上金額を含むデータを取得してみましょう。
まず条件を指定するための欄を2つ作成し、「年」と「月」にそれぞれ「2022」と「10」を入力しましょう。
B16セルに「=FILTER(B3:D10,(B3:B10=2022)*(C3:C10=10),”該当データなし”)」と入力します。
数式が「=FILTER(表全体の範囲,(条件式1)*(条件式2),[空の場合に表示させる文字列])」となるように入力しています。
これでFILTER関数を使用して複数条件を満たすデータを取得することができました。
FILTER関数で複数条件を指定する時、AND関数やアンパサンド記号「&」を使用せずに条件式を「*」でつなぐところがポイントです。
VLOOKUP関数でよくあるエラーと解決方法
VLOOKUP関数を使う時によくあるエラーとその解決方法を紹介します。原因によって出てくるエラーの種類も変わってくるので、エラーごとの特徴や対処方法を見ていきましょう。
- VLOOKUP関数で#N/Aエラーが表示される
- VLOOKUP関数で#REF!エラーが表示される
- VLOOKUP関数で表示される検索結果がおかしい
VLOOKUP関数で#N/Aエラーが表示される
#N/Aエラーは、一般的に合致するデータがないときに表示されます。ミスしがちなのが、オートフィルやコピー&ペーストで関数をコピーして他のセルで使用する時です。
関数内の引数でセル参照する時に相対参照で書いている場合、セルが固定されません。元々指定していたセルがズレてしまいエラーが発生します。
対処方法としては、コピー元の関数を「$B$2:$F$11」といったように「$」を付けて絶対参照で書くことです。絶対参照で書けばコピーしてもセルが固定されたまま変化しないのでエラーは起きません。
VLOOKUP関数で#REF!エラーが表示される
#REF!エラーはExcel(エクセル)で、存在しないセルを参照する数式を実行したときに表示されるエラーです。
例えば画像の式の場合、範囲には「B3からF11」が指定してありますが、列番号では表の6列目にある「G列」の値を返すように指定されています。
対処方法としては範囲や列番号を正しく設定しなおせばOKです。矛盾が解消されれば正しく動作するようになります。
VLOOKUP関数で表示される検索結果がおかしい
VLOOKUP関数の検索結果がおかしい場合、検索値が重複していないか確認してみましょう。
例えば画像のような表で商品「LS8-99」の売上金額を検索する時、「LS8-99」に関する異なるデータが2つ登録されていることが分かります。
それぞれ登録された商品「LS8-99」の売上金額が異なる場合、取得した結果が意図しない方になることがあるでしょう。対処方法は、検索値の情報が重複することのないように表を修正すれば正しい結果が得られます。
VLOOKUP関数の使い方や複数条件の指定方法をおさらい
Excel(エクセル)のVLOOKUP関数は引数が4つもあり、また検索に使用するデータの形式にも制約があるため扱うのが難しいと感じた人も多いかもしれません。しかし次のポイントを押さえておけばつまづくことは少なくなるでしょう。
- 検索値のある列は表の一番左に配置する
- 関数をコピーして使う場合は絶対参照を使用する
- TRUE型で検索する場合は、データを昇順に並べておく
- 複数条件を指定する場合は、条件を「&」で結合させる
今話題のリスキリングは手元から!
リテラアップアプリのご利用について、法人の方は下記フォームよりお問い合わせください。
(Excel,WordなどOffice製品やPC関連の技術的な質問にはお答えできかねます。ご了承ご了承ください。)