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

2024年3月22日

English version.

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

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

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

仕様

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

CHOOSE関数との違い

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

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

優れている点

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

劣っている点

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

使用例

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

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

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

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

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

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

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

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

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

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

文字列を条件にした場合

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

XLOOKUP関数(VLOOKUP関数)

以下のようなケースでは、インデックスと結果の対応表を用意して

XLOOKUP関数(VLOOKUP関数)で対応するほうが適切です。

  • 結果の種類が多い(10件以上など)
  • 同じ構文のSWICTH関数が複数のセルに必要になる

IFS関数

判定条件に〇〇以上などの数値の範囲を指定したい場合はIFS関数が適切です。

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

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

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

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

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

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

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

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

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

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

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

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

Excelを効率的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り950円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で

(実際のページ数はデバイスで変わります)

基本的な使い方、関数の解説(140種類)、

頻出テクニックと実用例(109種類)、

XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

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

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

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