条件
IFS関数の使い方・読み方
読み方:IFS は「イフス」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)
IFSは、複数の条件を上から順に判定して、最初に当てはまったものを返す関数です。
このページの中身(23項目)
この記事の書式と対応環境の出どころ(2026-08-26 確認)
- Google スプレッドシート ヘルプ:公式の書式は
IFS(条件1, 値1, [条件2, 値2], …)
https://support.google.com/docs/answer/7014145 - Microsoft サポート:IFS 関数(2019 以降で使えます)
https://support.microsoft.com/ja-jp/excel/functions/ifs-function
関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。
IF を何重にも入れ子にする書き方の置き換えとして使います。やっていることは同じですが、括弧の対応を数えなくて済むぶん、書くのも直すのも圧倒的に楽になります。

書式
=IFS(条件1, 値1, 条件2, 値2, 条件3, 値3, ...)
条件と値をペアで並べるだけです。ペアはいくつでも増やせます。
IFのネストとの比較
同じ判定を両方の書き方で並べてみます。
IFのネスト
=IF(A2>=90, "A", IF(A2>=80, "B", IF(A2>=70, "C", "D")))
IFS
=IFS(A2>=90, "A", A2>=80, "B", A2>=70, "C", TRUE, "D")
読みやすさの差は、条件が増えるほど広がります。IFのネストは末尾に閉じ括弧が並び、1つ足すだけでも数え直しが必要です。IFSは行末にペアを足すだけで済みます。

上から順に判定される
IFSで最も重要なのがここです。条件は書いた順に評価され、最初に TRUE になったところで止まります。
そのため、判定の順番を間違えると結果が壊れます。
=IFS(A2>=70, "C", A2>=80, "B", A2>=90, "A") ← 誤り
これだと95点でも最初の A2>=70 に当てはまるので「C」が返ります。以降の条件は評価されません。
数値の範囲で分けるときは、厳しい順(大きい順)に並べる。 これが鉄則です。
逆に、この性質を利用すれば範囲の上限を書かずに済みます。「80以上90未満」を AND(A2>=80, A2<90) と書く必要はありません。90以上の条件を先に書いておけば、そこを通過した時点で90未満が保証されるからです。
最後の受け皿を必ず書く
IFSは、どの条件にも当てはまらなかった場合にエラーを返します。該当なしという意味のエラーです。想定外の値が入ったときに、数式が壊れたように見えます。
これを防ぐには、最後の条件を常に真になるものにします。真という値そのものを条件として書けば、それより上のどれにも当てはまらなかった場合に必ずここへ落ちます。ここに「その他」や「対象外」といった値を返すようにしておけば、想定外の入力があってもエラーになりません。
この受け皿は、単なるエラー回避ではありません。想定外のデータが混ざっていることを発見する手がかりにもなります。「対象外」が並んでいれば、元データに何か問題があると気づけます。空欄にしてしまうと気づけません。
もうひとつ、空欄のセルへの対処も考えておく必要があります。空欄は数値として扱われるとゼロになるため、条件によっては意図せず該当してしまいます。最初の条件で空欄を判定して除外しておくのが確実です。
どの条件にも当てはまらなかった場合、IFSは #N/A を返します。
=IFS(A2>=90, "A", A2>=80, "B")
70点だと #N/A です。これを避けるには、最後の条件に TRUE を置きます。
=IFS(A2>=90, "A", A2>=80, "B", TRUE, "その他")
TRUE は常に成立するので、ここまで来たものは全部これに落ちます。IFにおける「偽の場合」に相当する受け皿です。
IFSを書いたら必ず TRUE の行を付ける、と習慣にしておくと事故が減ります。
実用例
金額から手数料区分を出す
=IFS(A2>=100000, "無料", A2>=50000, "300円", A2>=10000, "500円", TRUE, "800円")
在庫数からステータスを出す
=IFS(A2=0, "在庫切れ", A2<=5, "残りわずか", A2<=20, "在庫あり", TRUE, "十分")
文字列で振り分ける
=IFS(A2="東京", "首都圏", A2="神奈川", "首都圏", A2="大阪", "関西", TRUE, "その他")
ただし、この形(1つの値を複数パターンで振り分ける)は SWITCH のほうが短く書けます。
=SWITCH(A2, "東京", "首都圏", "神奈川", "首都圏", "大阪", "関西", "その他")
比較演算子を使うならIFS、値の一致だけならSWITCH、と覚えておくと選びやすいです。
複数条件を組み合わせる
=IFS(AND(A2>=80, B2>=80), "総合A",
OR(A2>=80, B2>=80), "片方A",
TRUE, "その他")
条件が多すぎるときは表にする
条件が10を超えたら、IFSでも読みづらくなります。その場合は判定表を別シートに作り、XLOOKUP で引くほうが保守しやすくなります。
| 下限 | 区分 |
|---|---|
| 90 | A |
| 80 | B |
| 70 | C |
| 0 | D |
数式は1本で済み、区分を追加したいときは表に1行足すだけです。数式を触らずに運用できるのが最大の利点です。
エラーの対処
#N/A が出る
どの条件にも当てはまっていません。最後に TRUE, "その他" を足してください。
#N/A が出る(引数の数)
条件と値がペアになっていません。引数の数が奇数だとこうなります。カンマの数を確認してください。長い数式では、Alt+改行で条件ごとに改行しておくと発見しやすくなります。
意図と違う値が返る
条件の並び順を疑ってください。緩い条件が先頭にあると、そこで全部止まります。
上から順に判定されるという性質
IFSでもっとも重要な性質は、条件が上から順に評価され、最初に真になったところで判定が終わることです。この一点を理解していないと、正しく書いたつもりの数式が意図しない結果を返します。
具体例で考えます。点数に応じて評価を出したいとして、八十点以上ならA、六十点以上ならB、それ未満ならCとします。このとき、条件を六十点以上から先に書いてしまうと、九十点の人も六十点以上に該当するため、そこで判定が終わってBになります。八十点以上という条件には到達しません。
つまり、範囲で判定する場合は、厳しい条件から順に書く必要があります。上限側から書くか下限側から書くかは、不等号の向きで決まります。以上で判定するなら大きい値から、以下で判定するなら小さい値から並べます。
この性質は、慣れると便利に使えます。条件を重ねて書く必要がなくなるためです。八十点以上、かつ六十点以上、という書き方をしなくても、上から順に評価されることを前提にすれば、単純な条件を並べるだけで済みます。IFのネストで同じことをやると、条件が入れ子になって読みにくくなります。
逆に言えば、順番を入れ替えると結果が変わります。数式を後から編集するときは、条件の順序を崩さないよう注意してください。
IFのネストとの使い分け
条件が三つ以上あるとき、IFのネストとIFSのどちらを使うべきかは、条件の構造で決まります。
条件が横並びに独立している場合、つまり同じ値を複数の基準で判定する場合は、IFSが適しています。条件と結果がペアで並ぶので、読み手は上から順に追うだけで理解できます。基準を追加したいときも、行を足すだけで済みます。
一方、条件が入れ子の構造を持っている場合、つまり一つ目の判定の結果によって次に見る項目が変わる場合は、IFのネストのほうが構造を素直に表現できます。地域を判定してから、その地域の中でさらに区分を判定する、といった場合です。
判断に迷ったら、条件を箇条書きにしてみてください。並列に並ぶならIFS、入れ子になるならIFのネストです。
なお、条件が五つを超えるようなら、そもそも数式で書くべきかを考え直す段階です。対応表を作って検索関数で引くほうが、保守が楽になります。基準が変わったときに表を直すだけで済み、数式を触る必要がありません。
対応表に置き換える判断
判定の基準が数値の区分である場合、表にして検索関数で引く方法が有力な選択肢になります。
たとえば、金額に応じて手数料率が変わる場合。区分が三つなら数式で書いても読めますが、七つ八つになると数式が長くなり、基準の変更も面倒になります。区分の下限値と手数料率を並べた表を作り、近似一致で検索すれば、数式は一行で済みます。
この方法の利点は三つあります。基準の変更が表の編集だけで済むこと。区分の追加が行の追加だけで済むこと。そして、現在の基準が一覧で見えることです。数式の中に埋もれていると、今どういう基準になっているのかを確認するのに数式を読み解く必要があります。
欠点は、表を置く場所が必要になることと、近似一致を使うため表が昇順に並んでいる必要があることです。並び順が崩れると、静かに誤った値を返します。
判定が文字の完全一致で振り分けられる場合は、専用の関数を使うほうが簡潔になります。同じ値を何度も書く必要がなくなります。
判定基準を表に外出しする実際
条件が数値の区分である場合、対応表を作って検索で引く方法が有力です。実際にどう組むかを整理します。
対応表は二列で作ります。左に区分の下限値、右に対応する結果。下限値は昇順に並べます。この並び順が崩れると、静かに誤った値を返すため、並べ替えは慎重に行ってください。
検索は、近似一致のモードを使います。指定した値以下の最大値に対応する結果が返ります。区分の判定はこれで実現できます。
この方法の利点は、区分の追加が行の追加だけで済むことです。基準の変更も、数値を書き換えるだけです。数式は一切触りません。
もうひとつの利点は、現在の基準が一覧で見えることです。数式の中に埋もれていると、今どういう基準になっているのかを確認するのに読み解く必要があります。
欠点は、表を置く場所が必要になることと、並び順に依存することです。並び順を保つために、対応表のシートを保護しておくのも一案です。
判定が文字の完全一致である場合は、近似一致ではなく完全一致で検索します。区分コードから名称を引く、といった用途です。
数式で書くか表で持つかの目安は、条件が五つを超えるかどうかです。それ以上なら表を検討してください。
条件の網羅性を確認する
条件分岐を書いたら、想定される入力をすべて網羅しているかを確認してください。漏れがあると、特定の値だけ結果が出ない、という状態になります。
確認の方法として、想定される値の一覧を作り、それぞれに対して判定を実行する検証用の表を作ります。すべての値で期待どおりの結果が出るかを目で確認できます。
数値の区分であれば、境界の値を必ず確認してください。ちょうど基準値のときにどちらに入るか。以上なのか超えるのかで結果が変わります。
負の値や零も確認対象です。想定していない値が入ったときにどうなるか。受け皿の条件が正しく機能しているかを確かめます。
空欄も確認してください。空欄は数値として零に評価されるため、意図せず特定の区分に入ることがあります。
文字列の判定であれば、想定外の文字が入ったときの動作を確認します。受け皿がないとエラーになります。
この検証は、条件を追加したときにも繰り返してください。条件の順序を変えただけで結果が変わることがあります。検証用の表を残しておけば、確認は数秒で終わります。
「条件」の関数を全体から見る
判定と分岐の関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに14本あります。
このカテゴリで共通するつまずき
文字列は引用符で囲む必要があります。囲み忘れが最も多い間違いです。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
分岐が3つを超えたら、数式ではなく対応表を引く形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
先に決めておけば、書くのは数分で終わります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
文字列は引用符で囲む必要があります。囲み忘れが最も多い間違いです。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
分岐が3つを超えたら、数式ではなく対応表を引く形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
うまくいかないときに見る場所は、ほぼ決まっています。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
収録は201本です。カテゴリごとの内訳を出しておきます。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 ←この記事 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. どの条件にも当てはまらないとエラーになります
最後に常に真になる条件を書いて、受け皿を用意してください。
Q. 条件の順番を変えたら結果が変わりました
上から順に評価される仕様です。範囲で判定する場合は、厳しい条件から順に並べてください。
Q. 条件はいくつまで書けますか
実用上、困らない数を指定できます。ただし多すぎると読めなくなるので、五つを超えたら別の方法を検討してください。
Q. 複数の条件を組み合わせられますか
一つの条件の中で、複数の判定を結合する関数を使えます。かつで結ぶ場合もまたはで結ぶ場合も書けます。
Q. 空欄が意図せず該当します
空欄は数値として扱われるとゼロになります。最初の条件で空欄を判定して除外してください。
Q. 古い環境でも使えますか
比較的新しい関数のため、古い環境では使えません。共有する相手の環境を確認してください。使えない場合はIFのネストで代替します。
Q. 結果に数式を返せますか
返せます。文字列だけでなく、計算式や他のセルの参照も返せます。
Q. 数式が長くて読めません
数式バーの中で改行できます。条件と結果のペアごとに改行すると、構造が一目で分かるようになります。
まとめ
- 書式は
=IFS(条件1, 値1, 条件2, 値2, ...) - 上から順に判定され、最初に当てはまったところで確定する
- 数値の範囲は厳しい順に並べる
- 最後に
TRUE, "その他"の受け皿を置く - 値の一致だけなら SWITCH、条件が10を超えたら表+XLOOKUP
関連する関数
IFS でつまずきやすいところ
上から順に判定されることを忘れている
IFS は最初に当てはまった条件で止まります。
=IFS(A2>=50,"B",A2>=100,"A") と書くと、120でも「B」になります。
条件は厳しいほうから並べてください。
どれにも当てはまらないと #N/A
IFS には既定値の引数がありません。
最後に TRUE,"その他" と書くのが定石です。
=IFS(A2>=100,"A",A2>=50,"B",TRUE,"C")
これを忘れると、当てはまらない行に #N/A が並びます。
#N/Aエラーの直し方で扱っている状況の1つです。
空欄が条件に引っかかる
空欄は0として扱われるので、A2<50 のような条件に当たります。
入力前の行まで判定されるので、先に空欄を外します。
=IF(A2="","",IFS(A2>=100,"A",A2>=50,"B",TRUE,"C"))
古いExcelで #NAME?
IFS は Excel 2019 / 365 以降です。それより前は IF の入れ子で書きます。 社外に渡すファイルでは、この点で使う関数が変わります。
段階が増えるなら対応表にする
条件が5つを超えたら、数式で持たずに表にしたほうが管理できます。 下限値の表を作り、VLOOKUPの4つ目を TRUE にして引きます。
=VLOOKUP(A2,$H$2:$I$6,2,TRUE)
この場合だけは TRUE が正解です。表は下限値の昇順に並べてください。 段階が増えても、表に行を足すだけで済みます。