IFS関数は、複数の条件を上から順に評価し、最初にTRUEになった条件に対応する値を返します。基本形は=IFS(条件1,結果1,条件2,結果2,...)です。点数評価なら=IFS(A2>=90,"A",A2>=80,"B",A2>=70,"C",TRUE,"D")のように、厳しい条件から並べます。条件順が違うと最初の広い条件ですべて決まるため、IFSでは順番が結果そのものです。該当条件が一つもなければ#N/Aになるので、必要な場合だけ最後にTRUEと既定結果を置きます。条件数を増やしすぎず、変更頻度が高い区分は検索表へ分離してください。
IFSは条件と結果を一組ずつ並べる
=IFS(B2="緊急","最優先",B2="高","優先",B2="通常","標準")では、各logical_testの直後へ対応するvalue_if_trueを置きます。条件だけ、または結果だけを増やすと引数不足になります。論理式はTRUEまたはFALSEへ評価できる式にし、返す値には文字、数値、セル参照、別の計算を指定できます。
IFが真・偽の二分岐を一組で表すのに対し、IFSは複数候補のうち最初の真を返します。「すべての真に対応する結果を一覧で返す」関数ではありません。複数条件が同時に真になり得る場合、先に書いたものが優先されるため、優先順位を業務ルールとして明記します。
評価は上から行われ最初のTRUEで決まる
点数をA・B・Cへ分けるとき、A2>=70を最初に置くと90点もそこでTRUEになり、Aなど上位評価へ到達しません。>=90、>=80、>=70のように上限側から順に並べます。反対に「上限以下」で分ける設計なら、小さい上限から並べます。
条件を自然言語の表へし、各行に優先順位、下限、上限、返す値を書いてから式へ変換します。境界ちょうど、直前・直後、最小・最大、範囲外をテストします。条件が重なる場合は、どちらを優先するか担当者の承認を得ます。
最後のTRUEは既定結果として使える
Microsoft公式資料では、最後のlogical_testにTRUEを置くと、それ以前のどの条件にも合わない場合の既定結果を返せると説明されています。=IFS(A2>=90,"A",A2>=80,"B",TRUE,"対象外")のように使います。TRUEを途中へ置くと後続条件へ進まないため、必ず最後に置きます。
すべての未該当を同じ結果へしてよい場合だけ既定値を使います。入力ミスや異常値まで「対象外」として隠すと、データ品質問題に気づけません。許可値が限定されるコードでは、既定結果を”要確認”やNA()にして異常を見えるようにする選択肢があります。
該当条件がなければ#N/Aになる
#N/Aは、式が壊れているとは限らず、TRUEになった条件がないことを示します。最後の既定条件がないIFSで、範囲外の値や空白が入ると発生します。IFERRORで一律に空白へ変える前に、未該当が正常なのか、条件漏れなのか、入力異常なのかを判断します。
未該当を明示したいなら最後にTRUEと説明文字を置きます。検索結果の#N/Aだけを扱うIFNAと、すべてのエラーを扱うIFERRORの違いも確認します。外部参照の#REF!や数値変換の#VALUE!まで「対象外」にしてはいけません。エラー種別を数え、原因列を残します。
AND・ORで複合条件を作る

「在庫が10未満かつ納期が今日以前」のような条件は、AND(C2<10,D2<=TODAY())を一つのlogical_testにできます。どちらか一方ならORを使います。IFSの各条件が長くなるほど、括弧、絶対参照、境界の誤りが増えるため、条件ごとの補助列でTRUE・FALSEを確認してから組み込みます。
ANDとORを混ぜる場合、括弧で優先関係を明確にします。全組み合わせを真理値表へ書き、各ケースでどのIFS条件が最初に真になるか確認します。TODAYのように再計算で変わる値を使う場合、報告基準日を固定セルへ置くことも検討します。
文字・数値・空白・日付を正しく比較する
文字列は二重引用符で囲み、数値は通常そのまま比較します。数値に見える文字列、全角数字、余分な空白は条件を外れることがあります。日付はDATE関数または日付セルを使い、地域依存の文字列を避けます。空白、空文字、0は同じではないため、入力規則に合わせて条件を作ります。
表示形式で丸められた値も内部値で比較されます。評価に使う値を先にROUNDするか、原値で判定するかを決めます。日付時刻の境界では、終了日以下と翌日未満の違いを確認します。入力異常は最後のTRUEへ吸収せず、別条件で”入力確認”と返すと追跡しやすくなります。
条件を127個まで書けても増やしすぎない
MicrosoftはIFSで最大127の条件を扱えると説明していますが、多数条件は正しい順序で入力・テスト・更新することが難しいため推奨していません。数個を超えて増え続ける式は、区分マスタ、XLOOKUP、INDEX・MATCH、SWITCH、Power Queryなどへ分離できないか検討します。
基準値と結果が表形式なら、検索表にすることでルール変更をセルの更新として管理できます。同じコードの完全一致分岐ならSWITCHが読みやすい場合があります。複雑な計算をIFSの各結果へ重複して書かず、LETや補助列で共通計算を一度にまとめます。利用できるExcel版も確認します。
古いExcelとの互換性を確認する

Microsoftの現行案内ではIFSはExcel 2019以降やMicrosoft 365などで利用できます。古いExcelへ配布すると#NAME?になる可能性があります。ブックの利用者、デスクトップ・Web・モバイル、長期保管要件を確認し、必要ならIFの入れ子や検索表へ置き換えます。
互換性のためIFへ戻す場合も、条件順と境界は同じです。変換後に代表データで結果を比較します。新関数を使える環境でも、共同編集相手の版が混在している場合は、ブックの先頭に必要Excel版を記載し、開いた時点でエラーを発見できる検査セルを設けます。
戻り値の型をそろえる
一つの条件で数値、別の条件で文字列、最後に空文字を返すと、後続のSUMやグラフ、並べ替えで扱いが不均一になります。結果列の用途を決め、金額なら数値、分類なら文字、欠損なら組織で定めたコードにそろえます。0と未該当を同じにしない方が監査しやすい場合があります。
空文字を返して見た目を空欄にしても数式は存在します。COUNTAやCSV出力で完全な空白と異なる場合があります。エラーを返す設計では、利用者向け表示列と検査用エラー列を分けます。条件に対応する結果が一対一か、同じ表示文字が別の意味に使われていないかも確認します。
作成・検証・変更管理の手順
最初に条件表を作り、優先順位、条件式、期待結果、境界例を記載します。次に各条件を単独セルでTRUE・FALSE評価し、最後にIFSへまとめます。Excelの数式の検証機能で評価順を確認し、先頭条件、各境界、未該当、空白、異常値をテストします。
運用開始後は、条件や基準値を式へ直接埋め込まず、可能なら名前付きセルやマスタ表から参照します。ルールの版、承認者、変更日、テスト結果を記録します。計算方法が手動のブックでは再計算されているか確認し、結果だけを値貼り付けして判断根拠を失わないようにします。

確認チェックリスト
- 条件と結果を必ず一組で入力する
- 最初にTRUEになる条件が返るため優先順位と順番を確認する
- 範囲判定は上位からか下位からかを決め境界値をテストする
- 未該当を許す場合だけ最後にTRUEと既定結果を置く
- 条件数が増えたら検索表・SWITCH・補助列への分離を検討する
- 配布先のExcel版がIFSに対応するか確認する

コメント