ExcelのIFS関数は、複数の条件を順番に評価し、最初に満たされた条件に対応する結果を返す非常に便利な関数です。特に、従来のIF関数を何重にもネスト(入れ子に)させる複雑な記述を避け、可読性が高く、メンテナンスしやすい数式を作成できる点が大きなメリットです。この記事は、Excel初心者から中級者を対象に、IFS関数の基本的な使い方から、AND関数と組み合わせてより複雑な条件分岐を作成する方法、さらには実用上の注意点や応用例までを網羅的に解説します。
一方で、AND関数は、複数の条件がすべて真 (TRUE) であるかどうかをチェックする関数です。この2つの関数を組み合わせることで、Excelでのデータ分析や条件判定の可能性が大きく広がります。
1. IFS関数の概要
IFS
関数は、Excel 2016以降(Microsoft 365を含む)で利用可能です。指定された「条件」と「結果」のペアを、記述された順に評価していきます。
IFS
関数の一般的な構文は次の通りです:
=IFS( 論理式1, 真の場合の値1, [論理式2, 真の場合の値2], ... [TRUE, いずれも偽の場合の値] )
- 論理式1, 論理式2, …: TRUE または FALSE を返す条件式(例: `A1>=90`, `B2=”東京”`)。
- 真の場合の値1, 真の場合の値2, …: 対応する論理式が TRUE と評価された場合に返される値。
- [TRUE, いずれも偽の場合の値]: 強く推奨されるオプション。先行するどの論理式も TRUE にならなかった場合に返すデフォルト値を指定します。これを省略し、どの条件にも一致しない場合、
#N/A
エラーが発生します。
2. AND関数の概要
AND
関数は、引数として与えられた複数の論理式が、すべて TRUE である場合にのみ TRUE を返します。一つでも FALSE があれば FALSE を返します。
AND
関数の構文は以下の通りです:
=AND(論理式1, [論理式2], ...)
解説: 最大255個までの論理式(条件)を指定できます。「条件A かつ 条件B」のような状況を判定するのに使います。
3. IFS関数とAND関数の組み合わせ
IFS関数の「論理式」部分にAND関数を用いることで、「複数の条件を同時に満たす場合」というより複雑な条件分岐を作成できます。これにより、特定の組み合わせパターンに応じた結果を返すことが可能になります。
以下は、IFS
関数とAND
関数を組み合わせた具体的な例です。ここでは、セル J6 に前月比などの「掲載数」の増減値、セル K6 に同じく「順位」の変動値(例: プラスが改善)が入力されていると想定します。
=IFS( AND(J6 < 0, K6 > 0), "掲載数負け・順位勝ち", /* J6が負、K6が勝ち */ AND(J6 > 0, K6 > 0), "掲載数勝ち・順位勝ち", /* J6が勝ち、K6が勝ち */ AND(J6 < 0, K6 < 0), "掲載数負け・順位負け", /* J6が負、K6が負 */ AND(J6 > 0, K6 < 0), "掲載数勝ち・順位負け", /* J6が勝ち、K6が負 */ TRUE, "不明または変動なし" /* 上記以外の場合 */ )
この例では、J6 と K6 の値の正負の組み合わせによって、4つの異なるシナリオに対応するテキストを返します。AND関数によって、それぞれのシナリオ(例: 掲載数が減り (J6<0) かつ 順位が上がった (K6>0))を判定しています。
3.1 例の解説
上記の数式は、以下のロジックで動作します。
AND(J6 < 0, K6 > 0)
: J6が負 かつ K6が正の場合、TRUEとなり、「掲載数負け・順位勝ち」を返して終了します。- (上記がFALSEの場合)
AND(J6 > 0, K6 > 0)
: J6が正 かつ K6が正の場合、TRUEとなり、「掲載数勝ち・順位勝ち」を返して終了します。 - (上記もFALSEの場合)
AND(J6 < 0, K6 < 0)
: J6が負 かつ K6が負の場合、TRUEとなり、「掲載数負け・順位負け」を返して終了します。 - (上記もFALSEの場合)
AND(J6 > 0, K6 < 0)
: J6が正 かつ K6が負の場合、TRUEとなり、「掲載数勝ち・順位負け」を返して終了します。 - (上記すべてがFALSEの場合)
TRUE
: 最後の条件として常にTRUEが評価され、「不明または変動なし」を返します。これは、J6かK6、または両方が0の場合などに該当します。
4. 注意点とベストプラクティス
IFS
関数(特にAND関数と組み合わせる場合)を効果的に使用するために、以下の点に注意しましょう。
- 条件の順序は非常に重要:
IFS
関数は記述された順に条件を評価し、最初にTRUEになった時点で処理を終了します。そのため、より限定的な条件や優先度の高い条件を先に記述する必要があります。例えば、点数評価で「90点以上はS」「80点以上はA」としたい場合、IFS(点数>=90, "S", 点数>=80, "A", ...)
の順にしないと、95点の人が「A」と評価されてしまいます。 - 条件の網羅性とデフォルト値: すべての可能性のある入力パターンを考慮し、どの条件にも一致しないケースがないか確認します。予期せぬ入力や漏れに対応するため、必ず最後に
TRUE, デフォルト値
を設定し、エラー(#N/A)を回避しましょう。
コメント