今回は、Excelの機能である「VLOOKUP関数」についてサンプルを交えて紹介します。
VLOOKUP関数はとても便利な機能ですが、使い方を間違えると痛い目を見ます。
是非、基本の使い方から注意事項までご確認ください!
基本的なVLOOKUP関数の使い方
VLOOKUP関数は、①検索対象を②ある場所(範囲)で探し、④存在すれば(もしくは近似値があれば)その行にある③指定列の値を返す関数です。
VLOOKUP関数の引数は以下になります。
⇒VLOOKUP(①,②,③,④)
引数 | 内容 |
---|---|
① | 検索対象(値) |
② | 検索する場所(範囲) |
③ | 返される値を含む範囲内の列番号 |
④ | 1/TRUE(近似値) 又は 0/FALSE(完全一致) ※省略した場合は「1/TRUE(近似値)」 |
VLOOKUP関数は、
・複数のシートにまたがっているデータを必要な情報のみ1つのシートにまとめる
・システムからcsv形式で抽出した複数のデータを必要な箇所のみ抜き出し分析する
などなど、使いやすい関数なので知っていて確実に損のない機能です。
この関数は第4引数によって使いどころが異なるので、次項からは分けて説明していきます。
第4引数が「0/FALSE(完全一致)」の場合
検索対象が存在した場合に、値を返します。存在しなければ「#N/Aエラー」を返します。
例:商品販売記録
商品の販売記録を管理する帳簿です。
商品テーブルに商品の情報を入れ、商品販売記録にて販売代金を管理しています。
値段のD5セルに
「=VLOOKUP(C5,$I$5:$K$9,3,FALSE)」を入れ、その後列にコピーしています。
これで、商品名を入れると値段を引っ張ってくることができるようになりました。
例:健康診断の通知
社員リストのデータを元に、健康診断の通知文書を作成します。
・健康診断シート
・通知文書
印刷Noを変えるとそれぞれの値が変わるように、
C3→「=VLOOKUP($G$2,社員リスト!$A:$G,2,FALSE)」
C4→「=VLOOKUP($G$2,社員リスト!$A:$G,3,FALSE)」
C5→「=VLOOKUP($G$2,社員リスト!$A:$G,4,FALSE)」
C9→「=VLOOKUP($G$2,社員リスト!$A:$G,5,FALSE)」
C10→「=VLOOKUP($G$2,社員リスト!$A:$G,6,FALSE)」
と、入れています。
これで、印刷Noを変えるだけで通知対象を変えることができるようになりました。
第4引数が「1/TRUE(近似値)」の場合
検索対象が存在した場合に、近似値を返します。
近似値というのがミソで、
検索範囲内の上から順に見ていって検索対象が見つからなければ、検索対象以下の行をとってくる性質があります。
上から順にみるため、検索する範囲が必ず昇順(小さい順)に並んでいる必要があります。
また、検索対象以下の値が存在しなければ「#N/Aエラー」を返します。
例:成績管理
点数に対してS~Eまでの評価をつけるパターンです。
D3に「=VLOOKUP(C3,$F$3:$I$8,4,TRUE)」と入れて、列にコピペしてます。
これで、点数の値によって自動で評価をつけられるようになりました。
#N/Aエラーの対処方法
検索対象が見つからない等で「#N/A」エラーが出たときの対処方法です。
この対処にはIFERROR関数を使います。
⇒IFERROR(①,②)
引数 | 内容 |
---|---|
① | 値 |
② | エラーの場合の値 |
例えば、以下のようになります。
=VLOOKUP(C5,$I$5:$K$9,3,FALSE)
↓
=IFERROR(VLOOKUP(C5,$I$5:$K$9,3,FALSE),”※商品テーブルにありません”)
エラー内容が一目でわかるようになりましたね。
注意事項
VLOOKUP関数は、よく知らず使うと必ず痛い目を見ます。
よく注意して使うようにしてください!
第4引数のTRUEとFALSEに注意する
一番気を付けて欲しいのがこちらです。
内容は前述の通りで、動作が全く異なるため注意してください!
第2引数の検索する場所(範囲)は必ず固定しておく
下部のセルへコピペする際に範囲がずれてしまうので、必ず値を$をつけて固定してください。
例えば、以下のように$を付けてください。
(第2引数にカーソルを当ててF4を押すとまとめて$をつけれます)
VLOOKUP(C5,I5:K9,3,FALSE)
↓
VLOOKUP(C5,$I$5:$K$9,3,FALSE)
第4引数は省略しない
第4引数は省略すると、基本的には「1/TRUE(近似値)」になります。
分かっていてやっているのであればまだいいのですが、
前述のとおりFALSEとTRUEでは動きが異なり、TRUEだと近似値をとるので、結果を見ても気づきにくいです。
また、省略の仕方(第4引数の「,」の有無)によってTRUE、FALSEが変化するようで、
VLOOKUP(C5,$I$5:$K$9,3) → TRUE(近似値)
VLOOKUP(C5,$I$5:$K$9,3,) → FALSE(完全一致)
となります。
なので、TRUEであっても省略しない方が安全かと思います。
第4引数がTRUEの時、検索する範囲が昇順であること
前述の通り、
TRUE(近似値)だと「検索対象以下の値をとる」ため、昇順でないと正しい値が出ません。
今回の記事は以上です。
何かの参考になれば幸いです。ありがとうございました♪