IFS関数は、条件と値を交互に並べて多段階の判定を1つの式で書く関数です。IF関数を入れ子にした式と結果は同じですが、括弧の重なりが消えるため読みやすくなります。Excel 2019以降で使える関数で、判定は必ず上から順に行われます。
この記事でわかること
- IFS関数の構文と、使えるバージョンの境目
- IFの入れ子を機械的にIFSへ書き換える手順
- 上から順に判定されることで起きる、エラーの出ない間違い
- 「それ以外」を
TRUEで受ける書き方と、書き忘れたときの#N/A - 空欄の行が意図せず判定されてしまう原因と直し方
IFS関数の構文と対応バージョン
構文
=IFS(論理式1, 値1, [論理式2, 値2], ...)
| 引数 | 指定するもの | 注意点 |
|---|---|---|
| 論理式1 | 判定する条件 | 結果が TRUE か FALSE になる形で書く |
| 値1 | その条件を満たしたときに返す値 | 文字列は " で囲む。数式も置ける |
| 論理式2以降 | 2つ目以降の条件 | 条件と値は必ずペア。最大127組まで |
IF関数と違い、「それ以外」を受ける専用の引数がありません。最後の論理式に TRUE を置くことで代用します。
⚠️ 使えるバージョン
| 環境 | IFS |
|---|---|
| Excel 2016以前 | 使えない |
| Excel 2019 | 使える |
| Excel 2021 | 使える |
| Microsoft 365 | 使える |
2016以前の環境で開くと #NAME? になり、数式バーには _xlfn.IFS(...) のように表示されます。社外へ配布するブックや、複数バージョンが混在する職場の共有ファイルでは、IFの入れ子のままにしておくほうが安全です。自分の手元で完結する集計表なら、IFSに寄せる価値があります。

IFのネストをIFSに書き換える
書き換えは機械的にできます。IFの入れ子は「偽の場合」に次のIFを差し込む形なので、その入れ子を平らに並べ直すだけです。
書き換え前(IFの入れ子)
=IF(B2>=80,"A", IF(B2>=60,"B", IF(B2>=40,"C","D")))
書き換え後(IFS)
=IFS(B2>=80,"A", B2>=60,"B", B2>=40,"C", TRUE,"D")
- 入れ子の外側から順に「条件, 値」を取り出して横に並べる
- いちばん内側のIFの「偽の場合」を、
TRUE, 値に置き換える - 閉じ括弧をすべて外し、最後に1つだけ付ける
なぜ書き換えるか
結果は同じなので、目的は保守のしやすさの1点です。IFの入れ子は段数が増えるほど括弧の対応を追う必要があり、段を1つ足すときに「どの位置に差し込むか」を数えなければなりません。IFSなら、ペアを1組、正しい位置に挿入するだけで済みます。
⛔ ただし段数が2〜3段なら、書き換えの効果はほとんどありません。書き換えを検討する目安は4段以上です。
⚠️ 判定は上から順に行われる
IFSでいちばん多い間違いは、条件の並べ方です。
IFSは条件を上から順に評価し、最初にTRUEになった時点で確定します。それ以降の条件は評価されません。
やってしまう並べ方
=IFS(B2>=40,"C", B2>=60,"B", B2>=80,"A", TRUE,"D")
85点の行を判定すると、B2>=40 が先に成立するため 「C」 が返ります。「A」には決してたどり着きません。
正しい並べ方
大きいほうから順に並べます。小さいほうから並べるなら、演算子を < に統一して一貫させます。
⚠️ この間違いの厄介なところは、エラーが1つも出ないことです。数式は正常に動き、静かに違う値を返し続けます。しきい値を並べる判定を書いたら、境界の値(この例なら40・60・80と、その前後1)で必ず試してください。

実務でよく使う4パターン
① 「それ以外」を TRUE で受ける
最後のペアの条件に TRUE を置くと、どの条件にも当てはまらなかった行がここへ落ちます。
=IFS(B2>=80,"A", B2>=60,"B", TRUE,"対象外")
TRUE はそれ自体が常に成立する条件です。必ず最後に置いてください。途中に置くと、それ以降の条件がすべて無視されます。
書き忘れると、どれにも当てはまらない行が #N/A になります。「エラーではなく空欄にしたい」なら TRUE,"" と書きます。
② 空欄の行を先に除外する
未入力のセルは 0 として扱われます。そのため B2<60 のような条件は、空欄の行でもTRUEになります。
=IFS(B2="","", B2>=80,"A", B2>=60,"B", TRUE,"C")
空欄の判定を先頭に置くのが要点です。後ろに書くと、その前の条件で先に拾われてしまいます。
⚠️ 他の数式が "" を返しているセルは、見た目が空でも ISBLANK では空欄と判定されません。数式の結果を含む列を判定するなら B2="" のほうが実態に合います。
③ AND・ORで複数条件を組み合わせる
論理式の位置には、AND関数・OR関数もそのまま置けます。
=IFS(AND(B2>=80,C2>=80),"総合A", OR(B2>=90,C2>=90),"一芸", TRUE,"標準")
条件の組み立て方はIF関数と同じです。ANDは全部満たしたとき、ORはどれか1つを満たしたときに成立します。
④ 返す値に数式を置く
値の位置は文字列に限りません。計算式もセル参照も書けます。
=IFS($C2>=100000, $C2*0.85, $C2>=50000, $C2*0.9, TRUE, $C2)
金額の段階に応じて割引率を変える形です。返す値を数値にしておけば、そのまま合計できます。"0.85" のように引用符を付けると文字列になり、集計対象から外れます。

うまくいかないときの原因と直し方
| 症状 | 主な原因 | 直し方 |
|---|---|---|
#NAME? | Excel 2016以前で開いた | IFの入れ子に書き換える |
#NAME? | 文字列を " で囲んでいない | 値が文字列なら " で囲む |
#N/A | どの条件にも当てはまらない行がある | 最後に TRUE, 値 のペアを足す |
| 段階の判定がおかしい | 条件の並び順が逆 | 大きいほうから順に並べ直す |
| 途中から結果が全部同じ | 途中に TRUE を置いている | TRUE は最後の1組だけにする |
| 空欄の行に判定が付く | 空欄が 0 として扱われている | B2="" の判定を先頭に置く |
| 数式が受け付けられない | 条件と値がペアになっていない | 引数の個数が偶数になっているか数える |
| 合計に含まれない | 返り値を "1000" と囲んでいる | 引用符を外して数値で返す |
| 数式が長すぎて読めない | 段数が多い | 区分表+VLOOKUPへの置き換えを検討する |
長い数式を読みやすくする
数式バーの中で Alt+Enter を押すと改行が入ります。条件のペアごとに改行しておくと、後から並び順を確認しやすくなります。改行は計算結果に影響しません。
数式バーの高さは、右端の下向き矢印か、境界のドラッグで広げられます。
似た関数との使い分け
| 関数 | 対応バージョン | 選ぶ場面 |
|---|---|---|
| IF | 2016〜 | 2〜3段の分岐。配布用のブック |
| IFS | 2019〜 | 4段以上の段階判定を横並びで書く |
| SWITCH | 2019〜 | 1つの値を複数の候補と照合する |
| VLOOKUP(近似一致) | 2016〜 | 段階が多く、基準を表で管理したい |
| IFERROR | 2016〜 | エラーのときだけ別の値にする |
SWITCHとの分かれ道
同じ2019以降の関数ですが、役割が違います。
=IFS(A2="東京","関東", A2="大阪","関西", TRUE,"その他")
=SWITCH(A2, "東京","関東", "大阪","関西", "その他")
大小や複合条件を判定するならIFS、1つの値の等値照合ならSWITCH。SWITCHは最後に既定値を1つ書けるので、TRUE を置く必要がありません。
段が10を超えるなら数式をやめる
区分が10段を超えるようなら、IFSで書き続けるより基準を表にしてVLOOKUP関数の近似一致で引くほうが保守しやすくなります。基準が変わったときに、数式ではなく表の数値を直せば済むためです。
近似一致では、区分表の左端列に各段階の下限値を昇順で並べます。ここでも「上から順」ならぬ「小さい順」という並びの制約がある点は共通です。
よくある質問
Q1:IFSはExcel 2016で使えますか?
使えません。#NAME? になり、数式バーには _xlfn.IFS のように表示されます。2016以前の環境でも開くファイルなら、IF関数の入れ子で書いてください。入れ子は64レベルまで書けるので、段数で困ることはほとんどありません。
Q2:条件はいくつまで書けますか?
条件と値のペアで最大127組です。実際には10組を超えると数式が読めなくなるため、その手前で区分表+VLOOKUPへの切り替えを検討したほうが扱いやすくなります。
Q3:TRUE を書かないとどうなりますか?
どの条件にも当てはまらない行が #N/A になります。エラーを表示させたくないだけなら TRUE,"" を足してください。ただし「該当なし」が想定外なのか想定内なのかで扱いが変わります。データの不備を見つけたい段階では、あえて #N/A を残しておくほうが安全です。
Q4:IFSの中にIFやIFSを入れられますか?
入れられます。ただしIFSを使う理由が「入れ子を平らにすること」なので、入れ子にすると利点が消えます。判定の軸が2つあるなら、作業列を1本立てて軸ごとに分けるほうが読みやすくなります。
Q5:条件を後から1つ追加したいのですが。
追加したい段階の位置に「条件, 値」のペアを1組だけ挿入します。挿入する位置を間違えると、その下の条件が評価されなくなる点だけ注意してください。しきい値を扱う判定なら、追加後に境界の値で結果を確かめるのが確実です。
まとめ
- Excel 2019以降。2016以前では
#NAME?。配布用ならIFの入れ子のまま - IFの入れ子は、外側から順にペアを並べ直すだけで機械的に書き換えられる
- 判定は上から順。範囲条件は大きいほうから並べる。逆順はエラーが出ずに間違う
- 「それ以外」は最後に
TRUE, 値。書き忘れると#N/A - 空欄は
0扱い。B2=""の判定を先頭に置いて先に逃がす
※関数の対応バージョンはExcelの一般提供時点の情報にもとづいています。お使いの環境や更新プログラムの適用状況により、利用できる関数や表示が異なる場合があります。

