いまさら聞けないExcelの使い方講座

【Excel】大量の条件分岐にIF/IFS関数を使って混乱! SWITCH関数でシンプルにするテク

SWITCH関数でも複数の条件分岐は可能

IF/IFS関数よりも便利に使えることもある

 『セルの値が「○○」なら「××」という値を表示する』といった処理が必要なことがありますよね。一般的にはIF/IFS関数の利用を検討すると思います。例えば以下の表で、IFS関数を使って“会員ランク”から“割引率”を求める場合は、

=IFS(D2=$G$2,$H$2,D2=$G$3,$H$3,D2=$G$4,$H$4,TRUE,0)

 といった数式になります。IF関数なら以下のようになり、IFS関数よりも複雑な印象です。

=IF(D2=$G$2,$H$2,IF(D2=$G$3,$H$3,IF(D2=$G$4,$H$4,0)))

 いずれにせよ「D2=$G$2」「D2=$G$3」……と、何度も値を突き合せています。仮に比較する項目が増えた場合は数式の修正が大変ですね。

IFS関数を使って“会員ランク”から“割引率”を求める場合、セルE2の数式は「=IFS(D2=$G$2,$H$2,D2=$G$3,$H$3,D2=$G$4,$H$4,TRUE,0)」(①)となります

 では、IF/IFS関数を使わないで同じ処理をするには? 今回は複数の条件分岐に使える「SWITCH関数」の使い方を紹介します。

SWITCH関数の構文

 SWITCH関数の構文は以下の通りです。引数[式]には参照する値、もしくはセルを指定します。引数[値]と引数[結果]はセットで考えてください。

SWITCH関数の構文。[式]には参照する値、もしくはセルを指定します。[値1]が一致した場合は、[結果1]、[値2]が一致した場合は[結果2]……、と指定します。[既定の結果]は、どの[値]にも一致しなかった場合に表示する値を指定します

 [式]と[値1]が一致した場合に[結果1]、[値2]が一致した場合に[結果2]を表示します。最後の引数[既定の結果]は、どの[値]にも一致しなかった場合に表示する結果です。

 IF/IFS関数を使った3~4つ程度の条件指定に苦労する場合は、SWITCH関数のほうが簡単です。それ以上の項目数で値を取得したい場合は、VLOOKUP関数やXLOOKUP関数を使うほうがいいでしょう。

SWITCH関数を入力する

 引数の指定方法は一般的な関数と同じです。1ステップずつ入力していきましょう。ここではセルD2の値と比較するので、引数[式]は「D2」と指定するだけです。[値1]と[結果1]はセットとして、それぞれ「G2」と「H2」となります。続けて[値2]と[結果2]、[値3]と[結果3]を指定します。

 数式をコピーすることを考慮して[値]と[結果]は絶対参照に変更します。最後の引数[既定の結果]は「0」としました。まとめると以下の数式になります。

=SWITCH(D2,$G$2,$H$2,$G$3,$H$3,$G$4,$H$4,0)

 なお、数式中に「=SWITCH(D2,"ゴールド会員",0.05,"シルバー会員",0.02,"一般会員",0.01,0)」と、[値]と[結果]を直接指定しても構いません。

ここではセルD2の値と比較するので、SWITCH関数の引数[式]は「D2」となります。セルD2に「=SWITCH(D2,」(①)と入力します
[値1]と[結果1]は「G2」と「H2」となります。数式をコピーすることを考慮して「$G$2,$H$2」(②)と指定します。[F4]キーを押すと、簡単に絶対参照に切り替えられます
続けて[値2]と[結果2]、[値3]と[結果3]を「,$G$3,$H$3,$G$4,$H$4」(③)と指定します
どの値にも一致しない場合として、最後の引数[既定の結果]は「,0)」(④)と指定します
数式をコピーすれば完成です

3~4つの条件分岐におすすめ

 IF/IFS関数を利用して、3つ以上の条件を指定するのに苦労している人も多いのではないでしょうか。セルの値を比較して結果を切り替えたい時、SWITCH関数は直感的に使えると思いますよ。