2024.07.25

【初心者必見!】Vlookup関数の初心者に覚えてもらいたいこと

【初心者必見!】Vlookup関数の初心者に覚えてもらいたいこと

使えると便利なVlookup関数ですが、何となく難しいと感じて避けていませんか?この記事では、初めての方でも簡単に理解できるように、Vlookup関数について基礎から応用まで徹底解説します!構文の書き方から、初心者が間違いやすいミスまで、わかりやすくご説明いたします。ぜひ、実践してみてください。

Vlookup関数はどんな時に役立つの?

Microsoft ExcelやGoogle スプレッドシートなどで提供されている「Vlookup」関数。
使いこなせれば相当に便利なものですが、具体的にどんな場面で役に立つのでしょうか?

Vlookupは、表または範囲から特定の値を探し出して取得する関数で、

  • クライアントや商品のリストから特定の情報を引き出したい時
  • 学校の成績表で、生徒の名前から特定の科目の成績を見つけたい時
  • 在庫リストから商品番号に基づいて価格や在庫数を検索したい時

などの利用シーンが想定されます。

Vlookup関数の使い方

Vlookup関数を使うと、列(縦)に配置されたデータの中から、条件に当てはまるデータを探し出して取り出すことができます。
Vlookup関数では、目的に応じて以下の要素を指定して検索を行います。

  • 検索値
  • 範囲
  • 列番号
  • 検索方法

簡単に説明すると、「検索値」に指定した値を指定した「範囲」の中から探し、そこから「列番号」の数字の数だけ右にある値を出します。検索方法は、完全一致で探すかどうかをです。

構文の内容をしっかり覚える

Vlookup関数は正しい構文で指定しないと、上手く作動せず、何らかのエラーを表示してしまいます。(エラーの場合は「#REF!」や「#VALUE!」のような表示がでます。)

正しい構文は=Vlookup(検索値, 範囲, 列番号, 検索方法)だと覚えて下さい。

最初は難しく感じるかもしれませんが、繰り返しお手本を見て入力していけば、いずれ自然にできるようになります。
ですが、意味もわからずに暗記するのは難しいですよね。そこで以下を例にしてVlookupの()内の意味を解説します。

図01

例①:社員番号12346に対応する名前が知りたい場合
=Vlookup(B2,B2:D5,2,false)
上記のようにVlookup関数を指定することで、社員番号「12346」を持つ人の名前「市川春子」が表示されます。

例②:社員番号12346に対応する役職が知りたい場合
=Vlookup(B2,B5:D5,3,false)
左のようにVlookup関数を指定することで、社員番号「12346」を持つ人の役職「経理課事務員」が表示されます。

Vlookupの()内の意味は以下の通りです。

  • 検索値:検索をしたい値を入力します。ここでは社員番号12346を検索値に指定しました。
  • 範囲:検索したい範囲を指定します。ここではB3からD5までなので、 B5:D5と指定します。
  • 列番号:検索したい範囲(B5:D5)の中の、何番目の列の値を返すかを指定します。「名前」を表示させたい場合は、左から2列目なので、「2」と指定します。「役職」を指定したい場合はB5:D5の中の3列目なので「3」とします。
  • 検索方法:今回は「0」を指定していますが、Vlookupを使いこなそうと思ったら、あまり良い手段ではありません。これについては、次の見出しで詳しく解説します。

なお、構文は(検索値, 範囲, 列番号, 検索方法)と書かれている通り、指定した値はそれぞれ「,(カンマ)」で区切ります。区切りを入れないとエラーが表示されますので注意して下さい。
エラーが表示された時は、指定した範囲は正しいか、正しく区切られているかなどをチェックしてみましょう。

検索方法では「false」を使用しよう!

Vlookup関数は「完全一致検索」と「近似一致検索」の2つの方法で使えますが、一般的によく使われるのは「完全一致検索」です。例えば98点を取った生徒さんを検索したい時に、95点の生徒さんが検索結果に出てしまっては困りますよね?
そうならないようにするために、検索方法には「false」と入力して、「完全一致検索」をしましょう! 先ほどの構文を例に出して、書き換えてみます。

=Vlookup(B2,B2:D5,2,false)

これで完全に一致したデータだけが抽出されます!98点と指定すれば、98点を取った生徒さんだけをピックアップできるわけですね。95点を取った生徒さんが抽出されることはありません。

[false]と指定して、「#N/A(一致するデータなし)」と表示されてしまった場合には、逆に近似一致検索をしてくれる「true」を指定するのが良いでしょう。trueには以下のような使い方があります。

  • 数値の範囲内から、近い数字の値を検索する
    ある数字に近い値を持つデータを検索する際に、trueと設定することで、最も近い数値を持つデータを返します。
  • 似た文字列を検索する
    ある単語に似た文字列を検索する場合にtrueと設定することで、その文字列に最も近いものを見つけることができます。 例えば、藤島と藤嶋のような混同しやすい名前を探すときには「true」が便利です。

しかし「true」は「列の先頭から検索して、最初に見つかった値を選ぶ」という特徴を持っています。例えば500の近似値を検索した時、列の最初に450という値があれば、450を返します。列の最後に、より500に近い501という値があったとしても、450を返してしまうのです。
これを避けるには、列をあらかじめ値の小さい順(昇順)に並べ替えておく必要があります。
用途に応じて、falseとtrueを使い分けて下さいね!

Vlookup関数で使えるテクニック

この章ではVlookup関数で使えるテクニックをご紹介いたします。
どの技も使いこなせれば、Vlookup関数がますます便利になるので、ぜひ使いこなしてください。

範囲は列単位で指定すべし!

図01

例えば上のような表において、社員番号から名前を知りたい場合に、
=Vlookup(社員番号,B2:D5,2,false)
と構文を作ったとします。
実は、これはイマイチな指定なのですが、どこが良くないのか分かりますでしょうか。

これは、範囲指定に問題があります。
と言うのは、例えば今は社員が3人しかいない小規模な組織ですが、社員がどんどん増えたらリストがこんな風↓に伸びていきますね。

図02

そうすると、メンバーが増えるたびに、=VLOOKUP(B2,B2:D5,2,0)の範囲を =VLOOKUP(B2,B2:D6,2,false)、=VLOOKUP(B2,B2:D10,2,false)と、その都度書き換える必要がありますね。毎回書き換えていると、ミスをするかも知しれません。

だから、範囲の指定は列で行いましょう。

=VLOOKUP(B2,B:D,2,false)

上のように数字を消して、列のアルファベットを指定するだけで、列全体を範囲指定することができます。これで社員が何人増えても関数を書き換える必要はありません。
VLOOKUP関数の範囲指定は列指定で!と覚えておきましょう。

絶対参照でズレを防止

VLOOKUP関数の難点は、慎重に作業をしてもいつの間にかズレが生じてしまうことです。最初に指定した範囲がズレて「#N/A(一致するデータなし)」が連続で表示されることがよくありますです。

それを避けるために使いたいテクニックは、「絶対参照」です。絶対参照を使った構文は以下のようになります。
=VLOOKUP(B2,$B$2:$D$8,2,false)

$がついている部分が絶対参照です。絶対参照を使えば、表に対して列の挿入や削除があってもズレることなく、指定された範囲から値を返してくれます。
毎回$を入力するのは面倒かもしれませんが、安心して下さい。F4キーを叩くと簡単に絶対参照($B$2)や($B2)を作ることができます。F4で$が出ない場合は、Fnキーと同時に押してみてください。

【まとめ】
【F4】キーを1回押す 行と列が固定される(絶対参照)(例:A1→$A$1)
【F4】キーを2回押す 行が固定される(複合参照)(例:A1→A$1)
【F4】キーを3回押す 列が固定される(複合参照)(例:A1→$A1)
【F4】キーを4回押す 最初の状態に戻る(相対参照)

N/Aエラーが出たら

Vlookup関数を使用すると、N/Aエラー(「Not Available(利用不可)」の意)が出ることがあります。その主な原因は以下の通りです。

  • 検索したい列が範囲に含まれていない
  • 検索値が範囲の一番左に無い
  • 全角・半角が間違っている
  • 小文字の「~」が入っている
  • 「範囲」のセル参照がズレている

1.2.5の場合、構文を見直して絶対参照($)を使うのが良いでしょう。正しい構文を書けば、N/Aは解消されます。
または参照したいデータを、別のシートに持っていくのも有効です。「関数を書き込んでいるシート」と「データのあるシート」をわけるだけでエラーが表示される確率はぐっと下がります。シートを変えて指定すると、関数の記述方法は以下のようになります。

=VLOOKUP(B2,別シート!$B$2:$D$8,2,false)

4の場合で、半角全角や、大文字小文字の問題は、少量なら手作業で直してしまうのが早いでしょう。あまりにも多い場合は、LENB関数で全角・半角を識別したり、JIS関数で半角を全角に、ASC関数で全角を半角に変換する方法がありますが、ここではそのやり方は割愛させて頂きます。

では③や⑤で、手作業では直せず、N/Aを消したい時には、どうすればいいのでしょう?
そのような時は、ぜひVLOOKUPにひと手間加えてみて下さい。

=VLOOKUP(B2,$B$2:$D$8,2,FALSE)&""

構文の後ろに&""を加えるだけで、N/Aの表示は消え、空白が表示されます。

複数条件の指定方法

VLOOKUP関数は、他の関数と組み合わせて使用することが可能です。
例として、if関数と一緒に使ってみましょう。

検索リスト

図03

検索結果 60点以上で合格、60点未満で不合格

  A B  
1 生徒番号 A005 ←検索したい生徒番号を入力する
2 名前 鈴木京子 =Vlookup(B1,A:C,2,false) と入力
3 点数 98 =Vlookup(B1,A:C,3,false) と入力
4 合否 合格 =If(Vlookup(B1,A:C,3,false)>=60,"合格","不合格") と入力

VLOOKUP関数を()で括り、IF関数を指定することで、関数を二つ同時に使うことができます。
検索条件で使用できる引数には、=(等しい)、<>(等しくない)、>=(以上)、>(より大きい)などがあります。未満やより小さい等の指定ももちろんできますので、細かい分類も可能です。

まとめ

特徴・勤務地から仕事を検索

検索

人気の検索

人気の検索

検索

カテゴリ一覧