ITライター 立山秀利
複数の値の中から一致するものを取り出したいなら、SWITCH関数を使うと便利だ。今回はSWITCH関数の基本的な使い方を紹介する。
※本記事で紹介する関数はExcel 2019以降で使えますが、Excel 2016以前のバージョンには対応していません
例えば図1のような会員向けセミナーの申込者一覧表があるとする。C6~C9セルには会員クラスに応じて、次のように値引額を求めたいとする。
会員クラス 値引額
-------------------
プラチナ \5,000
ゴールド \3,000
シルバー \1,500
ブロンズ \0
-------------------
図1
このようなケースでは、SWITCH関数を使うのがオススメだ。Excel 2019から追加された新しい関数である。Office 365のExcelでも使うことができる。
SWITCH関数は複数の値から一致するものを検索し、対応する結果を返す。書式は以下の通りである。
-------------------------------------------------------------------------
=SWITCH(式, 値1, 結果1, 値2, 結果2・・・)
=SWITCH(C6,"プラチナ",5000,"ゴールド",3000,"シルバー",1500,"ブロンズ",0)
-------------------------------------------------------------------------
引数「式」には、検索したい値を指定する。引数「式」が引数「値1」と一致すれば、引数「結果1」に指定した値を返す。引数「値2」と一致すれば引数「結果2」の値を返す。以降は必要な分だけ、値と結果の引数のセットを追加していけばよい。
先述の例の場合、D6セルの値引額をSWITCH関数で求めるには、まずは引数「式」には会員クラスが入力されているC6セルを指定する。引数「値1」には会員クラス名の「"プラチナ"」、引数「結果1」にはプラチナ会員の値引額である5000を指定する。
他の会員クラスも同様に、引数「値~」と引数「結果~」に、会員クラス名と値引額を指定していく。以上を踏まえると、D6セルには以下の数式を入力すればよい。
上記数式をD6セルに入力し、さらにD7~D9セルにオートフィルなどでコピーした結果が図2だ。D6~D9セルには、意図通りに値引額が求められている。なお、E6~E9セルには、B3セルの会費から、C6~C9セルの値引額を引く数式が入力してあり、最終的な請求額を求めている。
図2
また、SWITCH関数には省略可能な引数として「規定の結果」がある。「式」がどの「値~」とも一致しない場合に返す結果を指定する引数だ。「値~」と「結果~」のセットの最後に、引数「規定の結果」だけを指定する。
例えば、万が一会員クラス以外の値がC6セルに入力されてしまった際、値引額として0を返すようにしたいとする。その場合は下記のように、最後に引数「規定の結果」として0を追加すればよい。
---------------------------------------------------------------------------
=SWITCH(C6,"プラチナ",5000,"ゴールド",3000,"シルバー",1500,"ブロンズ",0,0)
---------------------------------------------------------------------------
今回の機能はIFS関数を使ってもできる。例えばD6セルなら以下の数式になる。
-------------------------------------------------------------------------------
=IFS(C6="プラチナ",5000,C6="ゴールド",3000,C6="シルバー",1500,C6="ブロンズ",0)
-------------------------------------------------------------------------------
このようにIFS関数の場合、条件式にすべてC6セルを記述しなければならない。SWITCH関数はその点、C6セルは引数「式」にだけ記述すればよく、数式全体がシンプルになるのがメリットだ。
一方、SWITCH関数はIFS関数のように、不等号などを使った「~以上」のような条件式は指定できない。あくまでも一致でしか検索できないのがデメリットだ。
また、別のセルに対応表をあらかじめ用意しておけるなら、VLOOKUP関数など検索系の関数でも同じ機能を作成できる。この方法のメリットは対応表が目に見えてわかりやすいこと。デメリットは対応表を必ず用意しなければならず、レイアウト上の制約を受けたり、用意する手間がかかったりすることだ。
今回の例の会員クラスごとの値引額のように、なるべくシンプルな数式で複数の値から欲しいものを取り出したいならSWITCH関数を活用しよう。
立山秀利(たてやま・ひでとし)
カーナビのソフトウェア開発、Webプロデュース業務を経て、現在は、システムやネットワーク、Microsoft Officeを中心に執筆中。 主な著書に『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』などがある。
(監修:日経BPコンサルティング)