SWITCH関数:複数の値と一致するか順に調べて真の場合に値を返す

SWITCH 関数は Excel で用意されている関数の一つで、指定のセルの値が引数に記述した値と一致するかどうか順に調べて、一致した場合は値を返します。ここでは Excel における SWITCH 関数の使い方について解説します。

※ Excel の対応バージョン : 365 web 2021 2019

(2021 年 09 月 12 日公開 / 2022 年 10 月 25 日更新)

SWITCH関数の定義

SWITCH 関数は最初の引数に指定した値が、 2 番目以降の引数に指定した複数の値と順に一致するか評価し、 TRUE になった時に値を返します。

SWITCH(式,値1,結果1,値2,結果2,・・・,規定値)

1 番目の引数に値と比較する式を記述します。 2 番目の引数に比較する値を記述し一致した場合は 3 番目の引数に指定した値を返します。もし一致しなかったら 4 番目の引数に記述した値と一致するか調べ、一致した場合は 5 番目の値を返します。これを引数に記述した分だけ繰り返します。いずれの値とも一致しなかった場合は引数の最後に記述した規定値を返します。

SWITCH関数の定義(1)

例えば対象のセル( B2 )の値が "東京" か "神奈川" と一致する場合は "関東" 、 "大阪" か "京都" と一致する場合は "関西" 、いずれとも一致しない場合は "その他" と返すようにするには SWITCH 関数を次のように記述します。

=SWITCH(B2,"東京","関東","神奈川","関東","大阪","関西","京都","関西","その他")
--> 関西

いずれかの値と一致した場合は、それ以降の値と一致するかどうかは調べない点に注意してください。

SWITCH関数とIFS関数の違い

Excel では複数の条件式を記述できる IFS 関数が用意されています。 SWITCH 関数で記述できることは IFS 関数でも記述することができます。例えば先ほどの例は IFS 関数を使って次のように記述することができます。

=IFS(B2="東京","関東",B2="神奈川","関東",B2="大阪","関西",B2="京都","関西",TRUE,"その他")

ただ毎回論理式を記述する必要があり、同じ値と一致しているかどうかを調べる場合には冗長になります。このような同じ対象の値と複数の値が一致するかどうかを調べる場合には IFS 関数よりも SWITCH 関数の方が適しています。

複数の対象の値と比較する場合や、一致するかどうかだけではなく大きいか小さいかの判定が必要な場合などは SWITCH 関数では記述できないので IFS 関数を使用してください。

IFS 関数の使い方については「IFS関数:複数の条件を順に調べて真の場合に値を返す」を参照されてください。

SWITCH関数の使い方

それでは実際に SWITCH 関数を使ってみます。 Excel のシートに対象の数値を次のように入力しました。

SWITCH関数の使い方(1)

今回は SWITCH 関数の 1 番目の引き数に指定したセルに入力されている値の 1 文字目が "A" または "B" の場合は "中央倉庫"、 "C" の場合は "港倉庫" 、それ以外の場合は "地下倉庫" と返すように設定してます。 1 文字目を取得するために LEFT 関数を使います。

結果を表示する C3 セルを選択し、次のように入力しました。 SWITCH 関数の 1 番目の引数に調べる対象として LEFT(B2,1) セルを指定します( B2 セルに入力されている 1 文字目を取得する)。 2 番目以降の引数に順に "A" 、 "中央倉庫" 、 "B" 、 "中央倉庫" 、 "C" 、 "港倉庫" 、 "地下倉庫"と設定しました。

=SWITCH(LEFT(B3,1),"A","中央倉庫","B","中央倉庫","C","港倉庫","D","地下倉庫")

SWITCH関数の使い方(2)

Enter キーを押すと、 C3 セルには次のように表示されます。

SWITCH関数の使い方(3)

同じように C4 セルから C8 セルに対しても同じように SWITCH 関数を入力すると次のように表示されました。

SWITCH関数の使い方(4)

-- --

Excel における SWITCH 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。