switch関数の使い方とExcel2013以前の古いエクセルで使う方法
ifs関数とともに、
Excel2016の2016年2月アップデートで、
導入されたのがswitch関数です。
switch関数とは?
ifs関数とほとんど一緒なのですが、
switch関数の場合は、「同一の条件式」について値が違うごとに処理を分岐したい場合に使います。
(choose関数をご存知の場合は、choose関数がちょっと進化した関数、と思っていただくといいかもしれません。)
- 1.書式
-
SWITCH(式,値1,処理1,値2,処理2,値3,処理3, … ,規定値)
- 2.動作
-
- 式=値1→処理1
- 式=値2→処理2
- 式=値3→処理3
- ...
- (全ての条件を満たさないとき)→規定値(規定値がない場合は#N¥A!)
というような動作をする関数です。
switch関数を使うとif関数の入れ子(ネスト)不要
ifs関数と同様、
switch関数を使うことで、
if関数の入れ子(ネスト)を随分減らすことができます。
例えば、
A1セルの値に応じて、
- 1・・・・金
- 2・・・・銀
- 3・・・・銅
- その他・・(何も表示しない)
としたい場合には、
=switch(A1,1,"金",2,"銀",3,"銅","")
と入力します。
従来のif関数よりも簡単ですし、こういうパターンであれば、ifs関数よりも簡単です。
Excel2013、Excel2010、Excel2007等古いエクセルでは使えない
このswitch関数は、最新のExcel2016でしか使えませんが、古いExcelで使うためのユーザ定義関数を作ってみました。
Function SWITCH(ParamArray par())
Dim i As Integer
For i = LBound(par) + 1 To UBound(par) - 1 Step 2
If par(LBound(par)) = par(i) Then
SWITCH = par(i + 1)
Exit Function
End If
Next
If i = UBound(par) Then
SWITCH = par(i)
Else
SWITCH = CVErr(xlErrNA)
End If
End Function
上記ソースを
エクセルVBAの標準モジュールにコピペしてもらえれば、
switch関数と同じ動きをします。
便利な関数だと思いますので、ぜひ、活用してください!