更新日:、 作成日:

エクセル SWITCH 関数の使い方:値によって取得する結果を分岐する

はじめに

エクセルの SWITCH 関数の使い方を紹介します。

SWITCH 関数は値によって取得する結果を分岐します。「CHOOSE 関数」を数値以外にも対応した上位互換のような関数です。

=SWITCH(A1,1,"一",2,"二","それ以外") のようにして、セルの値が数値のとき、1 を に、2 を に、それ以外のときは それ以外 を表示できます。

=SWITCH(A1,"A",1,"B",2) のようにして、セルの値が文字列のとき、A を 1 に、B を 2 に表示できます。

等しいかだけを判定できます。以上や以下などは判定できません。

VBA の「VBA Select 文で複数に分岐する」のようなことができます。

条件の数だけ分岐を増やすには「IFS 関数」を使用します。
この関数は 365 または 2019 から使用できます。

SWITCH 関数の引数

SWITCH(評価値, 値1, 結果1)
SWITCH(評価値, 値1, 結果1, 値2, 結果2 …)
評価値と最初に一致したに対応する結果を返します。

SWITCH(評価値, 値1, 結果1, 値2, 結果2・・・, 既定値)
評価値と一致するがないときは既定値を返します。

引数「評価値」評価する値を指定します。
数値、文字列、セル参照、関数などを指定できます。
スピル化
引数「値」指定した値が引数「評価値」と一致するか判定します。スピル化
引数「結果」引数「値」が一致したときに返す値を指定します。
数値、文字列、セル参照、関数などを指定できます。
スピル化
引数「既定値」省略できます。
すべての引数「値」と一致しなかったときに返す値を指定します。
数値、文字列、セル参照、関数などを指定できます。
スピル化

スピル化:セルの範囲や配列を指定すると結果が「スピル」します。

使い方

SWITCH 関数の使い方を紹介します。

数値の値で分岐する

曜日の値 1 (日曜)7 (土曜) を曜日の名前にします。「WEEKDAY 関数」を使用して曜日の値を取得できます。「CHOOSE 関数」を使用して 1 ~ の分岐ができます。

=SWITCH(WEEKDAY(B3),1,"日曜",2,"月曜",3,"火曜",4,"水曜",5,"木曜",6,"金曜",7,"土曜")
=CHOOSE(WEEKDAY(B4),"日曜","月曜","火曜","水曜","木曜","金曜","土曜")
4

文字列の値で分岐する

エクセルExcel に、ワードWord に、それ以外を それ以外 にします。

=SWITCH(B3,"エクセル","Excel","ワード","Word","それ以外")

すべての引数「値」と一致しないときに引数「既定値」の値になります。

5

日付の値で分岐する

日付を 1日 のような形式にします。「DATE 関数」を使用して日付を入力できます。「DATEVALUE 関数」を使用して日付形式の文字列を日付に変換できます。

=SWITCH(B3,DATE(2014,6,1),"1日",DATEVALUE("2014/6/2"),"2日","2014/6/3","3日")

日付の 2014/6/3 と日付形式の文字列 "2014/6/3" は等しくありません。日付の実際の値は数値なのでその値と比較します。

すべての引数「値」と一致しないときはエラーになります。

6

解説

引数「評価値」と引数「値」が同じか判定します。大文字と小文字を区別しません。"ABC""abc" は等しいです。

引数「評価値」と引数「値1」が一致するなら引数「結果1」を返します。引数「値2」と一致するなら引数「結果2」を返します。複数の引数「値」と一致するなら最初に一致する引数「結果」を返します。

すべての引数「値」と一致しないときは引数「既定値」を返します。

すべての引数「値」と一致しないときに引数「既定値」を省略しているときはエラー #N/A になります。

IF 関数」や「IFS 関数」で同じように分岐するより、SWITCH 関数を使用した方が同じ数式を何度も繰り返す必要がないのでわかりやすいです。

=SWITCH(B3,1,"日",2,"月",3,"火")
=IF(B3=1,"日",IF(B3=2,"月",IF(B3=3,"火")))
=IFS(B3=1,"日",B3=2,"月",B3=3,"火")