本ページには広告が含まれています。

SWITCH 関数 値に対応する結果を返す新しい条件分岐

SWITCH関数 検索値と一致した値に対応する結果を返す

SWITCH関数は、検索対象の値に対して指定した複数の値を評価し、最初に一致した値に対応する結果を返します。いずれにも一致しない場合は、任意指定の「一致しない場合の結果」を返します。
IF 関数や IFS 関数のように条件分岐できる関数です。

スポンサーリンク

はじめに

くるみこ
くるみこ

SWITCH 関数は Excel 2019で追加された関数です。サブスクリプション版の「Microsoft 365」アプリの「Excel for Microsoft 365」と永続ライセンス版ではExcel 2019以降で使用できる関数です。

詳しい使い方を教えてください。よろしくお願いしますm(__)m

【この記事でわかることは】
・SWITCH 関数の使い方がわかります
・IFS 関数(IF 関数)との違いがわかります

関数の構文を確認します

SWITCH 関数入力時に表示される「数式オートコンプリート」から確認します。
※対応していないExcelバージョンでは「オートコンプリート」にこの関数が表示されません。

SWITCH 関数の構文

SWITCH関数入力時に表示されるオートコンプリート

さらに、表示される引数の表示画像がこちらです。

SWITCH関数書式のオートコンプリート表示

=SWITCH(, 値1, 結果1, [規定または値2, 結果2], …) 
[規定]というのは不一致だった場合に返す結果のようです。少し書き換えてみます。

【構文】

=SWITCH(式, 値1, 結果1[, 値2, 結果2, …, 不一致の結果])
 ※[ ]内の引数は省略可能です。赤太字部分は必須部分です。
 ※「値」と「結果」のセットは126まで指定可能です。
 ※「値」は1から順に評価され、一致した「値」に対応する「結果」を返します。

引数を詳しく見てみます。

引数内容
【必須】評価する値を指定します
値(n)n=1は必須】指定した値が「式」と一致するか評価します
結果(n)n=1は必須】「式」と「値」が一致したときに返す値を指定します
不一致の結果【省略可能】すべての評価が一致しなかった場合に返す値を単独で指定します
※ 各引数とも数値、文字列、セル参照、関数などを指定することができます。
※ 文字列ではアルファベットの大文字と小文字区別されません。

・一致する値がなく「不一致の結果」の指定が無い場合、#N/A! エラーを返します。
・「不一致の結果」の指定方法は「結果」だけを単独で指定します。IFS関数のように「値」の部分(TRUE)を指定する必要はありません。「値」と「結果」がセットになっていない場合「不一致の結果」が指定されたとみなされます。

・「式」の部分に論理値の「TRUE」や「FALSE」も指定できます。
・その場合は「値」の部分に比較演算子を使った論理式を指定して評価できます。

SWITCH 関数の使用例

それでは使用例で見ていきましょう。

基本的な使用例

各IDの獲得ポイントから3位までの上位の順位付け表示を行う例です。

SWITCH関数の基本的な使い方例

・C2セルはB2セルのポイント数を RANK.EQ関数を使い対象範囲のランク値を算出しています。
=SWITCH(RANK.EQ(B2,$B$2:$B$7),1,”1位”,2,”2位”,3,”3位”,”ランク外”)
B2の値がランク値1なら”1位”,2なら”2位”,3なら”3位”,その他の場合”ランク外”を表示します。
・C4セルだけ、その他の場合”ランク外”の部分に「(ランク値)」を表示してみました。
  =SWITCH(RANK.EQ(B4,$B$2:$B$7),1,”1位”,2,”2位”,3,”3位”,”ランク外(“
   &RANK.EQ(B4,$B$2:$B$7)&”)”)

IFS 関数を使って同じ結果を得ることもできます。式は次のとおりです。=IFS(RANK.EQ(B2,$B$2:$B$7)=1,”1位”,RANK.EQ(B2,$B$2:$B$7)=2,”2位”,RANK.EQ(B2,$B$2:$B$7)=3,”3位”,TRUE,”ランク外”)

IF 関数ならネストさせて次の式に置き換えることができます。=IF(RANK.EQ(B2,$B$2:$B$7)=1,”1位”,IF(RANK.EQ(B2,$B$2:$B$7)=2,”2位”,IF(RANK.EQ(B2,$B$2:$B$7)=3,”3位”,”ランク外”)))

1対1の条件で表示を切り替える(スイッチする)ならIFS関数やIF関数より「SWITCH関数」を使ったほうが式がスッキリします!

でも、SWITCH 関数は IFS/IF 関数と違い、1つの「式」しか判定できないことです。判定の対象を IFS/IF 関数 のように複数指定することは出来ません。
さらに、IFS/IF 関数では「~以上」や「~未満」など等号(=)以外を比較評価ができますが、SWITCH関数 は「完全一致」でしか判定できません。でも、この問題を解決できる使用例を次項で紹介します。

SWITCH関数で等号以外の比較演算子を使用する例

SWITCH 関数は「完全一致」で判定することがわかりました。でも、等号(=)以外の比較演算子「~以上」「~未満」などを判定する方法がありますので紹介します。

IFS 関数の「不一致」の場合の指定方法で「TRUE,”不一致”」のように記述するのと同じことを利用します。「比較演算子は TRUE または FALSE を返す」という性質を利用するわけです。

次の例は「評価基準」による「評価」設定を SWITCH 関数で算出している例です。

各「値」部分に「比較演算子」を使っています。(セル参照と直接指定の両方の例を表示しています)
C2セルの式を見てみましょう。(上の画像参照)

=SWITCH(TRUE,B2>=85,”A”,B2>=70,”B”,B2>=50,”C”,B2<50,”D”)

「式」の部分は TRUE としています。赤色下線の「比較演算子」の結果判定が TRUE ならば「結果」を返します。FALSE なら次の「値(比較演算子)」の評価に移ります。

この方法なら SWITCH関数でも「比較演算子」を使用することができることが確認できました。

IFS 関数でこれと同じ結果の式は次のとおりです。

=IFS(B2>=85,”A”,B2>=70,”B”,B2>=50,”C”,B2<50,”D”)

SWITCH 関数と比較してみると、今度は IFS 関数の方がスッキリしていますね!
SWITCH 関数の使い方のひとつとして知っておいて損はないと思います。
今回は「TRUE」を使った例ですが「FALSE」だって使うことができます。

まとめ(おわりに)

以上、SWITCH 関数 について、使用例を使って解説しました。
SWITCH 関数の使いどころとして、今回の例では、1位、2位、3位とランク外の表示分けと「ランク付け」表示をしました。
例えば「ID」をチェックして「ID」の属する部署を判定したり、名前を表示したりするなど、その他にもいろいろな応用が可能です。

くるみこ
くるみこ

「SWITCH 関数」と[IFS 関数]の使い方の違いがわかりましたか?
状況に応じて使い分けるのがよさそうですね。

1対1の単純な条件で表示を切り替える時にはわかりやすくてよさそうですね。
IFやIFSと書き換えるなどで練習しておくとよさそうですね(^^;

★★★ ブログランキング参加中! クリックしてね(^^)/ ★★★

【今後の記事について】

今回の記事はいかがだったでしょうか。皆さまのお役に立てたなら幸いです(^^;
「汎用でだれでも使えて活用できるように考えてる」というポリシーで、記事を継続して書いていきたいと思っています。どうぞよろしくお願いしますm(_ _)m

スポンサーリンク
スポンサーリンク

過去記事のサンプルファイルをダウンロードできます

今回の記事で使用したサンプルの登録はありません。
過去の記事で使用したサンプルファイルをダウンロードできるようにページを設置していますので、こちら(このリンク先)からご利用ください