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関数と同じ動きをします。

便利な関数だと思いますので、ぜひ、活用してください!

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。