Excel 指定値に一致する最初の結果を表示(SWICTH関数)

2020年5月16日

SWITCH関数は指定セルに対して複数の値と結果のセットを定義し対応する値を表示します。

SWITCH関数は新しい関数のためExcel 2016未満では使用できない可能性があります。

この記事では、その仕様と使い方を紹介します。

仕様

=SWITCH(式,値1,結果1 …省略… 値127,結果127)
引数省略時の値説明
省略不可評価の対象となる式を指定
値1~1271は省略不可一致条件を数値か文字列で指定。
ワイルドカードで部分指定は不可能。
値に対応する結果を記述しない場合は
その値が全てに一致しない場合の結果になります。
結果1~1271は省略不可。
対応する値を指定した場合は省略不可
値に一致した場合に対応する結果を文字列か数値で指定。
一致するものが複数ある場合は最初の値が優先。
数式や関数も使用可能。
各引数の詳細

CHOOSE関数との違い

SWITCH関数はCHOOSE関数の拡張版の関数です。

下記のような違いがあります。

優れている点

  • 数値だけでなく文字列も条件に指定可能
  • 連続しない数値の場合、架空の結果を設定する必要がない
  • 1~254以外の数値も条件に指定可能
  • 対応する値がない場合の結果の指定にIFERROR関数などを使わなくてよい

劣っている点

  • 1~254の連番、全てがある場合はCHOOSE関数の方がよい

使用例

WEEKDAY関数と併用し、日付の曜日を表示する例です。

対応する結果がない場合は#N/Aエラーとなります。

CHOOSE関数の場合は#VALUE!エラー

WEEKDAY関数と併用し、日付の曜日を表示する例です。

最後の結果の後にもう一つ引数を入れると一致するものがない場合の結果になります。

CHOOSE関数ではIFERROR関数などが必要でしたがSWITCH関数では単独で完結します。

また数値が連続している必要がなく0~254の範囲制限もありません。

一致するものがない場合の結果を入れた例

CHOOSE関数と違い文字列を条件にすることが可能です。

ただしワイルドカードを使用した部分一致検索は同様に不可能です。

文字列を条件にした場合

SWITCH関数以外を使用したほうがよい場面

SWITCH関数の場合もCHOOSE関数と同様です。

スピルを利用する方法とメリット

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には引数を範囲で指定します。

スピルでSWITCH関数を記述する例
スピルでSWITCH関数を記述する例

数式を入力するのは最初の一つのセルですが、

引数で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

D3に指定したSWITCH関数がD12まで自動拡大
D3に指定したSWITCH関数がD12まで自動拡大

スピルを利用することで今回の例では、

D3セルに入力するだけでよいため(D4以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

関連記事

日付に対応する曜日を取得(WEEKDAY関数)

IF系関数の使い方・活用方法の記事一覧

関数の仕様と使い方の記事一覧