【Excel・エクセル】IF関数とVLOOKUP関数を組み合わせた使い方

VLOOKUP関数とIF関数を組み合わせると、すっげ便利と聞いて。

使い方を見てみよう。
- 「=IF(VLOOKUP(~),○,×)」で、VLOOKUPの結果を条件にしたIF関数に
- 「=IF(○="","",VLOOKUP(~)」で、空白セルを無視してVLOOKUP関数ができる
IF×VLOOKUP組み合わせの練習ファイルダウンロード

一緒にやってみませんか?
【Excel・エクセル】IF関数とVLOOKUP関数を組み合わせる
もし~だったら○、そうでなかったら×を返すIF関数と、検索値から該当するセルの値を検索するVLOOKUP関数。
二つを組み合わせると、
- VLOOKUP関数の結果を条件にしたIF関数が作れる
- IF関数で条件に合った値をVLOOKUP関数で検索できる
- 空白セルを無視してVLOOKUP関数ができる
など、便利な使い方ができます。
ちなみにVLOOKUP関数とIF関数をおさらいしておくと……
=VLOOKUP(検索値,範囲,列番号,検索方法)
VLOOKUP | 検索値を範囲から探して、そこから列番号分右にあるセルの値を持ってきて |
検索値 | この値を基準にして |
範囲 | この範囲の中の |
列番号 | 左から何番目にある値を |
検索方法 | 検索値と全く一緒じゃないとダメか、似てるもでいいのか |
=IF(理論式,値が真の場合,値が偽の場合)
IF | もし |
理論値 | この数式が |
値が真の場合 | 当てはまったらこうしてね |
値が偽の場合 | 当てはまらなかったらこうしてね |

VLOOKUP関数の中にIF関数を入れるのと、IF関数の中にVLOOKUP関数を入れるのでは、使い方が違うんよ。

おー、複雑そうだ。
VLOOKUP関数をIF関数の条件(理論式)にするパターン
二つの関数が合わされば、VLOOKUP関数の検索結果をもとに、IF関数で結果の分岐ができます。
例えば売上表の金額が5,000円以上の商品に人気商品としたい場合。
D列の売上をもとに、セルB8に5,000円以上なら人気と表示させてみましょう。


売上表と人気の表は別なのか。

金額をVLOOKUP関数で検索して、それをIF関数の条件にするといいんよ。
これからIF関数とVLOOKUP関数を組み合わせますが、それぞれ別で考えると分かりやすいかもしれません。
■IF関数
今回IF関数部分は「売り上げが5,000以上だったら"人気"、そうでなければ空白」です。
つまり式は、「=IF(D2>=5000,"人気","")」になりますね。
この「D2」部分を、VLOOKUP関数を使って持ってこようとしています。
■VLOOKUP関数
今回VLOOKUP関数部分は「A列の商品名から、該当する売上を検索する」です。
つまり式は「=VLOOKUP(A8,A1:D5,4,0)」ですね。
この二つの式を、合体させるイメージですね!
ステップ1
何はともあれ、まずは関数名を書きましょう。
セルB8に「=IF(」まで書いてください。

ステップ2
理論式をVLOOKUP関数にするので、続けて「VLOOKUP(」と入力します。

ステップ3
次にVLOOKUP関数の検索値。
ここは商品名が使えそうですね。
というわけで、商品名が書かれたセルA8をクリックしてください。
あ、「,(カンマ)」も忘れずに。

ステップ4
検索元の表はセルA1~D5ですね。
セルA1~D5までをドラッグして選択して、,(カンマ)を入力してください。

ステップ5
次に列番号。
検索値から数えて、いくつ右にある値を検索したいのかです。
売上は商品名から見て4つ目にあるので、「4,」、最後の検索方法は、基本「0(FALSE)」でOKです。
VLOOKUP関数は終わりなので、カッコを閉じます。

ステップ6
理論式の続きです。
VLOOKUP関数で検索した売上が5000以上だったらとしたいので、「>=5000,」と書きますね。

ステップ7
最後に真の場合と偽の場合。
売上が5,000以上なら人気、5,000未満なら空白にしたいので、真の場合は「"人気"」、偽の場合は「""」になりますね。
これで式は完成なので、カッコを閉じましょう。

完成!
エンターキーを押せば、答えが出ました!
モグモググミは売上が8,000未満なので、空白になりました。

検索値をカムカムガムに変えてみました。
カムカムガムは売上が5,000以上なので、人気と表示されました!
VLOOKUPの検索結果をもとに、IF関数で結果の分岐ができているようです。

VLOOKUP関数をIF関数の真の場合にして、空白の計算を回避する
VLOOKUP関数は検索値が空欄だと、エラー(#N/A)となってしまいます。
例えば価格をVLOOKUP関数で検索している注文書では、注文していない行はエラーになってしまいます。
これではカッコ悪い……


これはVLOOKUP関数を使って、A9の商品名からA1:B5の価格を持ってきてるって式だね。

IF関数と組み合わせれれば、空白は検索しないようにできるんよ。
ステップ1
すでにあるこの式を活用しましょう。
F2キーを押すか、数式バーからにゅうりょくすれば、式を編集できますよ。
まずはIF関数を使いたいので、頭に「=IF(」と書きます。

ステップ2
注文書のA列が空白だったら、空白のままにしたいと思います。
理論式はセルA9をクリックして、「="",」と書けば良さそうですね。


「""」で、空白を表すんだね。
ステップ3
空白だったら空白としたいので、真の場合は「"",」でOKです。

ステップ4
次に偽の場合。
A列が空白じゃなかったら、そのままVLOOKUP関数を使って価格を検索したいので、元からあったVLOOKUP関数がそのまま使えますね。

ステップ5
最後にIF関数用のカッコ閉じを入力してください。

完成!
これで式は終わりです!
エンターキーで確定して、オートフィルすると、無事A列が空白だと、エラーではなく空白になりました!

【Excel・エクセル】 エラーを空白にするなら

合計のエラーがとっても気になるんだけど……

あらま!
確かに、合計は価格×個数ですが、空白を掛けるって謎の式になっているので、エラーになってしまってますね。


これもIF関数で空白にできるんよ。
考え方は先ほどのVLOOKUPの時と同じ。
「=B9*C9」を「=IF(A11="","",B9*C9)」にすれば、ホラこの通り!


VLOOKUP関数以外でも使えるんだね!

IFERROR関数を使うって手もあるよ。
他にもいろんな使い方があるので、ぜひ組み合わせをマスターして、資料作りに役立ててくださいね!
それでは、お疲れさまでした!
- 「=IF(VLOOKUP(~),○,×)」で、VLOOKUPの結果を条件にしたIF関数に
- 「=IF(○="","",VLOOKUP(~)」で、空白セルを無視してVLOOKUP関数ができる
ディスカッション
コメント一覧
まだ、コメントがありません