- IF関数とVLOOKUP関数の組み合わせ方法について知りたい
- 具体的にどんな場面で使うのだろう?
そんな疑問にお応えできるようこの記事では、
- IF関数、VLOOKUP関数の基本
- IF関数とVLOOKUP関数を組み合わせる使い方
について解説しています。
IF関数とVLOOKUP関数を組み合わせて使用すると条件分け&データ抽出が1つの数式で実現でき、非常に便利です。
VLOOKUP関数については、【基本から応用まで】エクセルVLOOKUP関数の超まとめ!で基本から応用な使い方までまとめているので、こちらの記事も是非ご参考下さい。
IF関数とVLOOKUP関数を組み合わせる方法
IF関数のおさらい
IF関数について簡単におさらいです。
IF関数を使うと、条件分岐することができます。
- 売上100万円以上はAランク・それ以外はBランク
- 80点以上は合格・それ以外は不合格
といった分類を実現することができます。
数式は下記のように記述します。
=IF(論理式,真の場合,偽の場合)
具体的には、下記のように使用します。
VLOOKUP関数のおさらい
VLOOKUP関数は、ある検索値をもとに指定した列の値を返してくれる関数です。
VLOOKUP関数を使うと
- 製品名を検索値として単価表から単価を抽出する
- 社員番号を検索値として社員表から所属部署を調べる
といったことが可能になります。
数式は、
=VLOOKUP(検索値,範囲,列番号,[検索方法])
となります。※検索方法は省略可能
例えば売上実績表に記載する単価を単価表からとってきたい場合、下記のようにVLOOKUP関数を使用できます。
おさらいが終わったところで、IF関数とVLOOKUP関数の組み合わせについて解説します。
IF関数とVLOOKUP関数を組み合わせる場合、
- IF関数の真偽でVLOOKUP関数を使う場合
- IF関数の条件(論理式の部分)でVLOOKUP関数を使う場合
の2通りがありますので、それぞれについて解説します。
IF関数の真偽でVLOOKUP関数を使う
例えば、表が2つあって条件によりどちらの表を参照するかが変わるという場合です。
具体的には、
- 一般社員の場合は一般社員の評価基準表を参照する
- 管理職の場合は管理職の評価基準表を参照する
という場合について考えましょう。
結論から言いますと、例えばE3セルに入力数式は下記の通りとなります。
- C3セルが「一般」であれば「一般社員評価表」から昇給額の値を取得する
- そうでない場合(「管理職」の場合)は「管理職評価基準表」から昇給額の値を取得する
という数式になっています。
ステップに分けて考え方を説明します。
1.条件を考える
まずは条件です。
今回だと、「一般か管理職か」が条件なのでIF関数を使う考えになります。
2.抽出すべきデータを考える
次に、データとして何を抽出しないといけないのか?です。
今回であれば、「評価」を基に「昇給額」を取得する
ですね。
この目的に応じたVLOOKUP関数を使用する考えになります。
条件と抽出すべきデータを考えると、結果的にIF関数・VLOOKUP関数を組み合わせることになり、
先ほどの数式となります。
全てのセルに数式を適用すると下記のようになります。
2つの表から適切に値を取得できていますね。
IF関数の真偽部分でVLOOKUP関数を使う方法については動画でも解説していますので、下記を参考にして下さい。
IF関数の条件(論理式の部分)でVLOOKUP関数を使う場合
VLOOKUP関数で抽出した値を基に条件を分岐させたい場合です。
例えば、ある営業所で保有している社用車が10年越えかどうかをチェックする数式を作りたい場合について考えましょう。
このときに考えられるステップとして、
- 経過年数を取得する
- その経過年数が10年を越えているかどうかを判断する
と考えられます。
VLOOKUP関数で1を取得し、IF関数で2を判断するようなイメージとなります。
最終的な数式としては下記です。
- ナンバーを検索値としてVLOOKUP関数で経過年数を取得
- 値が10より大きい場合は〇をつけ、そうでない場合は何も表示しない
という流れです。
結果、下記の通り10年を越えているナンバーには〇が表示され、そうでないナンバーには何も表示されないようになっています。
IF関数の論理式部分でVLOOKUP関数を使う方法についても動画がありますので、ご参考下さい!
IF関数とVLOOKUP関数を使ったときのエラー回避方法は?
IF関数と組み合わせてVLOOKUP関数を使った場合でも、VLOOKUP関数の検索値が表に存在しない場合
#N/A
というエラーが表示されることがあります。
このエラーを表示させたくない場合は、
IFERROR関数
を使いましょう。
先ほど説明に使った、一般・管理職の評価結果から昇給額を検索するファイルで説明すると、例えば何らかの理由で評価が記入されていないデータが存在すると#N/Aの表示がされてしまいます。
下記のようにIFERROR関数を使うことで、#N/Aを表示させないようにすることができます。
数式は少し長くなりましたが、2つのVLOOKUP関数をそれぞれIFERROR関数で挟んでいるだけです。
エラーの時の値に、
""(何も表示しない)
を指定しています。
IFERROR関数を含んだ数式を適用することで、#N/A表示を消すことに成功しました。