複数の条件を並べて分岐させたいとき、IFS関数が便利です。草野球の成績管理表で、打席結果の記号から「単打・二塁打・三塁打・本塁打」を自動で分類する場面を例に、使い方と内部のしくみを解説します。
IFS関数とは
「条件1ならA、条件2ならB、条件3ならC…」というように、複数の条件を上から順番にチェックし、最初に当てはまった条件の結果を返す関数です。IF関数を何重にも入れ子にする代わりに、条件と結果のペアを横に並べて書けるのが特徴です。
基本の書式はこうです。
=IFS(条件1, 結果1, 条件2, 結果2, 条件3, 結果3, …)
「条件」と「結果」を交互に並べていき、上から順にチェックして最初にTRUEになった条件の「結果」がそのまま返されます。
成績管理表での実例:打席結果記号を自動分類する
大阪グーニーズの個人成績シートでは、各打席の結果を「H1(単打)」「H2(二塁打)」「H3(三塁打)」「HR(本塁打)」という記号で入力しているとします。E列に記号が入っており、F列にその分類名を自動表示させたい場合を考えます。
| 選手名 | 打席結果記号(E列) | 分類(F列) |
|---|---|---|
| SUZUKI | H1 | 単打 |
| NAKATA | H3 | 三塁打 |
| YAMAMOTO | HR | 本塁打 |
| … | … | … |
このF列に入れる式はこうなります。
=IFS(E2="H1","単打", E2="H2","二塁打", E2="H3","三塁打", E2="HR","本塁打", TRUE,"アウト")
E列の記号が「H1」なら「単打」、「H2」なら「二塁打」……と順番にチェックしていき、どれにも当てはまらなければ最後の「TRUE」の条件が働いて「アウト」と表示されます。この最後の「TRUE」については、後ほど「よくあるミス」で詳しく触れます。
個人成績シートの「分類」列(F列)の、対象の行のセルをクリックして選択します。
「E2=”H1″,”単打”」のように、条件とカンマ区切りで結果を交互に入力していきます。条件の数だけペアを増やしていく形です。
どの条件にも当てはまらなかった場合の受け皿として、最後にTRUEの条件を入れておくのがポイントです。入力後、Enterキーで式を確定します。
しくみを理解する:IFSは何をしているのか
IFS関数は、書かれた条件を左から順に1つずつチェックし、TRUEになった時点でその隣の結果を返して処理を終えます。それより後ろに書かれた条件は、たとえ結果的にTRUEになる内容だったとしても一切チェックされません。
- 条件は必ず上から順に評価される(途中でTRUEが見つかった時点で残りは無視される)
- IF関数のネスト(IF(条件1,結果1,IF(条件2,結果2,IF(条件3,結果3,…)))という入れ子構造)と、最終的な動きは同じ。IFSは、この入れ子を書かずに条件と結果を横一列に並べられるようにしたもの
- どの条件にもTRUEにならなかった場合、受け皿となる条件が式の中になければエラー(#N/A)が返る
よくあるミス:意図しない分類やエラーが出る原因
IFSは上から順に1つずつしかチェックしないため、条件の書く順番を間違えると、本来当てはまるはずの後ろの条件までたどり着かないことがあります。例えば「打数が3以上」という広い条件を先頭に書いてしまうと、それ以降にある細かい条件(「打数が5以上」など)が一生評価されず、常に手前の条件の結果だけが返り続けます。条件は狭い範囲のものから先に書くのが基本です。
記号の入力ミスや空欄など、想定外の値がE列に入っている場合、どの条件にも一致せずに#N/Aエラーが表示されます。式の最後に「TRUE,”該当する結果”」を入れておくと、どの条件にも当てはまらなかった場合の受け皿として機能し、エラーを防げます。
- IFS関数は「複数の条件を上から順にチェックし、最初にTRUEになった結果を返す」関数
- 動きとしてはIF関数のネストと同じで、それを入れ子なしで横に並べて書けるようにしたもの
- 条件の順番と受け皿(TRUE)の入れ忘れが、意図しない結果やエラーの2大原因
次回予告
次回のテーマは「AND / OR」です。複数の条件をどうやって1つのTRUE/FALSEにまとめるかを、規定打席到達の判定を例に解説していきます。
▶︎ 次回:AND / OR関数の使い方としくみ



コメント