Menu

IFS関数の使い方: Excelで入れ子にせず複数条件を判定

=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")は条件を順番に調べ、最初にTRUEになった条件と組の値を返します。IFS関数の構文、TRUEによる既定値、IFSが#N/Aを返す理由、入れ子のIFとの比較を学びます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")は、条件を最初から順に調べ、最初にTRUEになった条件と組になっている値を返します。入れ子のIFと同じことを、IFの中にIFを入れずに行います。IFSにはExcel 2019以降かMicrosoft 365が必要です。

IFSで成績を出す
C2
ABC
1StudentScoreGrade
2Ana94A
3Ben81B
4Chloe70C
5Dan65F
6Eve88B
7Finn90A
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

C2をクリックしてください。条件と結果の組が4つあり、閉じかっこは1つです。B4のChloeの点数を69に変えると、成績がFに下がります。

IFS関数の構文

=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
  • 引数は組で指定します。TRUEかFALSEになる条件と、それがTRUEのときに返す値です。
  • Excelは条件を順番に調べ、最初にTRUEになった条件の値を返します。それより後の条件は調べないので、>=の条件ではいちばん高いしきい値を先に置きます。
  • 組は127個まで指定できます。
  • 「それ以外」専用の引数はありません。条件がTRUEの最後の組がその役目をします。

値のない条件があると(引数の数が奇数だと)、Excelは「この関数に対して、少なすぎる引数が入力されています。」と表示して数式を受け付けません。

既定値としてのTRUEと、何も当てはまらないときの#N/A

どの条件もTRUEにならないと、IFSは#N/Aを返します。下のC列には既定値がなく、低い2つの点数で失敗します。D列は最後にTRUE,"F"があり、それを受け止めます:

既定値ありとなし
C4
ABCD
1StudentScoreNo defaultTRUE default
2Ana94AA
3Ben81BB
4Dan65#N/AF
5Eve88BB
6Gus52#N/AF
#N/A 探している値が検索範囲にありません。

TRUEは常に真になる条件なので、それより前のすべての条件がFALSEだったときにだけ届きます。また最後の組にする必要があります。それより後ろは調べられないからです。既定値には何でも指定できます。空のセルにするならTRUE,""、行に印を付けるならTRUE,"Check"です。既定値を付けずに#N/Aを見えなくしたいなら、=IFNA(IFS(...),"No grade")も使えます。IFNAはIFERRORのページで説明しています。

文字列やAND、ORを使うIFS

条件は普通の論理式なので、文字列を比べたり、ANDやORを使ったりできます。ここでは配送方法が地域と注文合計で決まります:

配送方法
D2
ABCD
1OrderRegionTotalDelivery
21001North$120Free
31002North$60Standard
41003South$150Express
51004East$40Post
61005north$300Free
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

注文1001はNorthで100以上なので、Freeになります。注文1002はNorthですが100未満なので、最初の条件を満たさず、2つ目の条件B2="North"でStandardになります。文字列の比較は大文字と小文字を区別しないので、northと書かれた1005もFreeになります。

すべての条件が同じセルを決まった値と比べるとき(B2="N"、B2="S"、B2="E")は、SWITCHなら各値を1回ずつ書くだけで済み、短くなります:=SWITCH(B2,"N","North","S","South","Other")。

練習: 配送の速さ

配送の速さ
C2
ABC
1OrderDaysSpeed
210013
310021
410037
510042
610055
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: C2で、B2の日数が1以下なら「Express」、3以下なら「Standard」、それ以外は「Slow」を返してください。IFSを使います。数式はC6まで下にコピーされます。

IFSと入れ子のIFの違い

下の2つの数式は、どの点数にも同じ成績を返します:

=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
IFS入れ子のIF
かっこ1組IFごとに1組
既定値最後のTRUEの組最後のIFのvalue_if_false
どの条件にも当てはまらないTRUEを加えなければ#N/A最後のIFのvalue_if_false(省略していればFALSE)
上限127組入れ子64個
Excel 2016以前#NAME?使える

ファイルを開く全員がExcel 2019以降を使っているならIFSを、古いExcelの人にファイルを渡すなら入れ子のIFを選びます。結果が2つだけなら、どちらよりも普通のIFのほうが簡単です。税率の区分や配送重量のように数値の区分が多いときは、どちらも最適な道具ではありません。IFの入れ子のページで示したように、近似一致の検索用の表を使えば、しきい値をセルに置いておけます。

よくある質問

IFSに「それ以外」の値を付けるには?

最後の条件を常に真になるTRUEにします:=IFS(B2>=90,"A",B2>=80,"B",TRUE,"F")。それより前の条件のどれにも当てはまらない値はFになります。

IFSが#N/Aを返すのはなぜですか?

どの条件もTRUEにならず、最後にTRUEの組がないからです。=IFS(B2>=90,"A",B2>=80,"B")は75点に#N/Aを返します。最後にTRUE,"F"を加えるか、数式をIFNAで囲んでください。

IFSが使えるExcelのバージョンは?

Excel 2019、Excel 2021、Excel 2024、Microsoft 365、それにExcel for the webです。Excel 2016以前ではIFSを使った数式は#NAME?と表示されるので、入れ子のIFを使ってください。GoogleスプレッドシートにもIFSがあります。

IFSは入れ子のIFより優れていますか?

読みやすく閉じかっこも1つだけですが、動きは同じで、最初にTRUEになった条件が採用されます。ファイルをExcel 2016以前で開く必要があるなら、入れ子のIFを選びます。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める