Excel 複数の条件を指定し最初に合致する条件に対応する値を取得(IFS関数)

2020年5月15日

IFS関数はIF関数の拡張版で、複数の判定条件と結果が存在する場合に有効です。

この記事ではIFS関数の仕様とIF関数に比べて有利な場面を紹介します。

仕様

=IFS(条件式1,条件式1が真の場合の結果 …省略… 条件式127,条件式127が真の場合の結果)
引数省略時の値説明
条件式1~1271のみ省略不可比較演算子などを利用して判定条件を指定。
条件式1が真の場合の結果1~1271のみ省略不可対応する条件式がTRUEの場合の結果を指定。
各引数の詳細

使用例とIF関数との比較

点数や曜日など多数の値を取るものに対し複数の結果が存在する場合に有効です。

例えば得点によってランクを表示する例で考えます。

得点ランク
80以上A
60以上B
40以上C
39未満再テスト

IF関数で記述する場合、複数のIF関数をネスト(入れ子構造)に

記述するため数式が複雑になってしまいます。

=IF(得点セル>=80,"A",IF(得点セル>=60,"B",IF(得点セル>=40,"C","再テスト")))

IFS関数では一つの関数記述で済むため読みやすい数式になります。

=IFS(得点セル>=80,"A",得点セル>=60,"B",得点セル>=40,"C",TRUE,"再テスト")

なおIFS関数の最後の条件式は常に一致させるためTRUEとする必要があります。

もし全ての条件に合致しない場合は結果が#N/Aエラーになります。

IF関数とIFS関数の実行例

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

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

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

スピルの利用には条件式を複数セルの範囲で指定します。

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

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

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

C3に指定したIFS関数がC6まで自動拡大
C3に指定したIFS関数がC6まで自動拡大

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

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

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

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

関連記事

活用例

住所から都道府県名を抽出する方法

IF関数で〇〇以上(より上)かつ〇〇以下(未満)の条件を指定する方法

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

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