今回は、ExcelのIFS関数を使って、複数条件の判定をわかりやすく書く方法を紹介します。IF関数を何重にも入れ子にした数式は、あとから読み返すと条件の対応関係がわかりにくくなりがちです。IFS関数を使うと、条件と結果を順番に並べるだけで判定を書けるため、数式の見通しがよくなります。
IFS関数は、Office 2019以降、またはMicrosoft 365のExcel(Windows版・Mac版)で利用できる関数です。Excel 2016以前のバージョンでは使えないため、ファイルを共有する相手の環境も確認しておきましょう。
IFS関数とは
IFS関数は、指定した条件を先頭から順に調べ、最初に満たされた条件に対応する値を返す関数です。複数のIF関数を入れ子にする書き方の代わりとして使え、条件を上から順番に読めるのが利点です。
IFS関数の構文
構文は次のとおりです。
- =IFS(論理式1, 値が真の場合1, [論理式2, 値が真の場合2], …)
「論理式」と「その条件を満たしたときに返す値」を1組として、必要な数だけ並べていきます。条件は最大127組まで指定できます。
IF関数の入れ子との違い
たとえば点数に応じて評価を付ける場合、IF関数では次のように何重にも関数を重ねる必要があります。
- =IF(A2>=80,”A”,IF(A2>=70,”B”,IF(A2>=60,”C”,”D”)))
同じ判定をIFS関数で書くと、次のようになります。
- =IFS(A2>=80,”A”,A2>=70,”B”,A2>=60,”C”,TRUE,”D”)
かっこの対応を気にする必要が少なく、条件と結果が左から順に並ぶため、どの条件でどの値が返るのかを追いやすくなります。
IFS関数の基本的な使い方
点数から評価を判定する
A列に点数が入力されている表で、B列に評価を表示する例です。
- 評価を表示したいセル(例:B2)を選択します。
- 「=IFS(A2>=80,”A”,A2>=70,”B”,A2>=60,”C”,TRUE,”D”)」と入力します。
- Enterキーで確定し、フィルハンドルをドラッグして下の行にコピーします。
この数式では、80点以上なら「A」、70点以上なら「B」、60点以上なら「C」、それ以外は「D」が表示されます。
最後にTRUEを置いて「それ以外」を指定する
IFS関数には、IF関数の「偽の場合」にあたる引数がありません。どの条件にも当てはまらない場合の結果を決めたいときは、最後の論理式に「TRUE」を指定します。TRUEは常に満たされる条件として扱われるため、それより前の条件に当てはまらなかった場合の受け皿になります。
IFS関数を使いこなすためのコツ
条件は判定したい順番に並べる
IFS関数は、先頭の条件から順に評価し、最初に満たされた条件で結果を決めます。そのため、条件の並べ方によって結果が変わります。
たとえば「=IFS(A2>=60,”C”,A2>=80,”A”,TRUE,”D”)」と書くと、90点でも最初の「60以上」を満たすため「C」が返ってしまいます。「以上」で判定する場合は大きい値から、「未満」で判定する場合は小さい値から並べるのが基本です。
判定の基準値はセルに入力しておく
数式の中に「80」「70」のような基準値を直接書くと、基準が変わったときにすべての数式を修正しなければなりません。基準値を別のセルに入力して、絶対参照で参照しておくと、セルの値を変えるだけで判定結果をまとめて更新できます。
- 例:=IFS(A2>=$E$2,”A”,A2>=$E$3,”B”,A2>=$E$4,”C”,TRUE,”D”)
基準値の一覧を表の横に置いておけば、判定ルールそのものが見える形で残るため、ほかの人がファイルを引き継ぐときにも理解しやすくなります。
AND関数やOR関数と組み合わせる
1つの条件の中で複数の項目を同時に確認したい場合は、論理式にAND関数やOR関数を使います。
- 例:=IFS(AND(B2>=70,C2>=70),”合格”,OR(B2>=70,C2>=70),”再確認”,TRUE,”不合格”)
この例では、2つの科目の両方が70以上なら「合格」、どちらか一方だけなら「再確認」、どちらも満たさなければ「不合格」と表示されます。
値に応じて参照するセルを切り替える
IFS関数の結果には、文字列だけでなくセル参照も指定できます。たとえば、区分番号に応じて別のセルに入力された値を表示するといった使い方が可能です。
- 例:=IFS(F2=1,D2,F2=2,D3,F2=3,D4)
未入力のセルは最初に判定して空欄を返す
点数がまだ入力されていない行にも数式をコピーしておくと、空欄のセルが0として扱われ、「D」のような評価が表示されてしまうことがあります。これを避けたい場合は、最初の条件で空欄かどうかを確認し、空欄なら何も表示しないようにします。
- 例:=IFS(A2=””,””,A2>=80,”A”,A2>=70,”B”,A2>=60,”C”,TRUE,”D”)
入力前の行に評価が表示されなくなるため、途中まで入力した表でも結果を確認しやすくなります。
IFS関数でよくあるエラーと対処法
IFS関数で思いどおりの結果にならないときは、次の点を確認してみましょう。
- #N/Aエラーが表示される:どの条件も満たされなかった場合に表示されます。最後に「TRUE,”該当なし”」のような受け皿を追加すると防げます。
- #VALUE!エラーが表示される:論理式の結果がTRUEまたはFALSE以外の値になっている可能性があります。条件の書き方を見直しましょう。
- 引数が少なすぎるという趣旨のメッセージが表示される:論理式に対応する値が指定されていない状態です。条件と値が必ず1組になっているかを確認しましょう。
IFS関数を使うときの注意点
条件を127組まで指定できるとはいえ、条件を増やしすぎると、並び順の確認や修正が難しくなります。判定の種類が多い場合は、基準値と結果を一覧表にまとめ、XLOOKUP関数やVLOOKUP関数で参照する方法も検討するとよいでしょう。表で管理すれば、ルールの追加や変更も一覧を書き換えるだけで済みます。
また、前述のとおりIFS関数はExcel 2016以前では使えません。古いバージョンで開くとエラーになる可能性があるため、共有先の環境がわからない場合は、IF関数の入れ子で書いておくほうが無難な場面もあります。
まとめ
IFS関数を使うと、複数条件の判定を条件と結果の組み合わせとして順番に並べるだけで書けます。IF関数の入れ子よりも数式が読みやすくなり、あとからの修正もしやすくなります。
- 構文は「論理式」と「真の場合の値」を1組として並べる
- どの条件にも当てはまらない場合は、最後にTRUEを指定する
- 条件は先頭から評価されるため、並べる順番に注意する
- 基準値はセルに入力して参照すると、変更に対応しやすい
- #N/Aや#VALUE!などのエラーは、受け皿の有無と論理式を確認する
評価の判定、区分分け、ステータス表示など、条件で結果を分ける場面は多くあります。今ある入れ子のIF関数を、IFS関数で書き直すところから試してみてください。