ExcelのIF関数で複数条件を設定する方法をお探しですね。

広告

ExcelのIF関数で複数条件を使いこなす方法|AND・OR・ネストをわかりやすく解説

ExcelのIF関数は、「80点以上なら合格」「在庫が10個以下なら要発注」みたいに、条件に応じて表示を切り替えたいときに使う基本の関数です。

ただ、条件が2つ、3つと増えていくと、式がどんどん長くなって読みづらくなったり、以上・以下の判定順を間違えて思った結果にならなかったりします。

この記事では、IF関数の基本から、複数の条件の扱い方、AND・ORとの組み合わせ、条件が多いときのネスト、IFS関数やSWITCH関数との使い分けまで、実際に使うときに迷いやすいポイントをわかりやすく解説していきます。

IF関数の基本と「以上・以下」の使い方をマスターしよう

IF関数は、指定した条件が正しいときと正しくないときで、返す結果を変える関数です。

基本の形は「=IF(条件, 正しいときの結果, 正しくないときの結果)」です。

例えば、B2セルの点数が80点以上なら「合格」、それ以外なら「不合格」と表示したいときは、「=IF(B2>=80,”合格”,”不合格”)」と入力します。

ここで使っている「>=」は「以上」という意味の記号で、80点ちょうども含めて判定するのがポイントです。

Excelで条件を指定するときは、「以上」「以下」「より大きい」「未満」の違いをきちんと使い分ける必要があります。

80点以上は「B2>=80」、80点以下は「B2<=80」、80点より大きいは「B2>80」、80点未満は「B2<80」です。 境界の値を含めるかどうかで結果が変わってくるので、合格ラインや割引条件、在庫の警告などを設定するときは特に注意しましょう。 文字を返すときは「"合格"」みたいにダブルクォーテーションで囲みますが、数字を返すときは「1000」のようにそのまま書けばOKです。 実際の仕事では、「空白なら何も表示しない」というIF関数もよく使います。 例えば、A2が空白なら空白のまま、何か入力されていたら判定する場合は「=IF(A2="","",IF(A2>=80,”合格”,”不合格”))」のように書けます。

空白セルをそのまま判定すると、勝手に0として扱われたり、変な結果が表示されたりすることがあるので、最初に空白チェックを入れると表がきれいに見えます。

提出状況や売上入力など、まだ入力されていないデータが混ざっている表では特に役立つテクニックです。

AND・ORを使ってIF関数に複数の条件を設定する

IF関数で複数の条件を扱う方法には、大きく分けて「すべての条件を満たすか」をチェックする方法と、「どれか1つでも満たすか」をチェックする方法があります。

すべて満たす必要があるときに使うのがAND関数で、どれか1つでも満たせばいいときに使うのがOR関数です。

例えば、B2の点数が80点以上、かつC2の提出状況が「提出済」なら「合格」としたいときは、「=IF(AND(B2>=80,C2=”提出済”),”合格”,”不合格”)」と書きます。

ANDの中に複数の条件を並べると、両方ともクリアしたときだけ「合格」が返ってきます。

一方で、点数が80点以上、または提出状況が「免除」なら「合格」としたいときは、OR関数を使って「=IF(OR(B2>=80,C2=”免除”),”合格”,”不合格”)」とします。

ORは条件のうち1つでも満たせばOKになるので、例外処理や救済措置を表現しやすいのが特徴です。

例えば、普通は購入金額5,000円以上で送料無料だけど、会員ランクが「ゴールド」なら金額に関係なく送料無料、みたいな判定にも向いています。

条件が増えても、「ANDは全部」「ORはどれか」と覚えておくと整理しやすくなります。

ANDとORは組み合わせて使うこともできます。

例えば、「点数が80点以上で、提出状況が『提出済』または『理由あり』なら合格」としたいときは、「=IF(AND(B2>=80,OR(C2=”提出済”,C2=”理由あり”)),”合格”,”不合格”)」と書きます。

この式では、まず点数の条件を満たしているかを確認して、そのうえで提出状況が2つのどちらかに当てはまるかをチェックしています。

複雑に見えるかもしれませんが、外側のANDやORが何をまとめているのかを意識すると、式の意味を追いやすくなります。

IF関数のネストで3つ以上に分岐させるコツ

IF関数の中にさらにIF関数を入れることを「ネスト」または「入れ子」と呼びます。

ネストを使うと、3つ以上の結果に分岐できます。

例えば、B2の点数が80点以上なら「優」、60点以上なら「可」、それ未満なら「不可」と表示したいときは、「=IF(B2>=80,”優”,IF(B2>=60,”可”,”不可”))」と書きます。

最初の条件に当てはまらなかった場合だけ、次のIF関数が判定される仕組みです。

点数みたいに範囲で評価する場合は、条件の順番がすごく重要です。

例えば、80点以上を「優」、60点以上を「可」としたいのに、先に「B2>=60」を判定してしまうと、80点の人も60点以上に該当するので「可」と表示されてしまいます。

なので、点数評価や売上ランクみたいに段階的な判定をするときは、厳しい条件から順に並べるのが基本です。

90点以上、80点以上、70点以上みたいに、上から下へ流すと誤判定を防げます。

もっと細かく分けたい例として、90点以上は「A」、80点以上は「B」、70点以上は「C」、60点以上は「D」、それ未満は「E」とするなら、「=IF(B2>=90,”A”,IF(B2>=80,”B”,IF(B2>=70,”C”,IF(B2>=60,”D”,”E”))))」となります。

IFを重ねた数だけ閉じカッコも増えるので、エラーが出たときはカッコの数を確認しましょう。

Excelでは数式バーの中で改行して見やすくすることもできるので、長い式は条件ごとに改行して管理すると後で修正しやすくなります。

ネストを作るときは、最初から長い式を一気に書こうとしないのもコツです。

まず「80点以上なら合格、それ以外は不合格」みたいな1つの条件のIF関数を作って、次に「それ以外」の部分に新しいIF関数を入れると、構造を崩しにくくなります。

実際に仕事で式を共有するときは、最後の「それ以外」の部分に「該当なし」や「要確認」みたいな結果を入れておくと、想定外の値を見つけやすくなります。

空白にしてしまうと、未入力なのか条件外なのか判断しづらくなるので、あえてエラーメッセージっぽい文言を返すのも有効です。

ネストを見やすくする工夫とIFS・SWITCH関数の使い分け

IF関数のネストは便利ですが、条件が増えるほど読みにくくなります。

ExcelではIF関数を何段階にも重ねられますが、実際の仕事では3〜4段階を超えると、後から見直した人が条件の意味を理解しにくくなりがちです。

自分だけが使う表なら動けばいい場面もありますが、部署内で共有するファイルや毎月更新する管理表では、読みやすさとメンテナンスのしやすさを重視したほうが安全です。

長い式を作る前に、条件を表に書き出してから数式にすると、漏れや重複に気づきやすくなります。

Excel 2019以降やMicrosoft 365を使える環境なら、複数条件の分岐にはIFS関数も選択肢になります。

IFS関数は「=IFS(条件1,結果1,条件2,結果2,条件3,結果3)」みたいに、条件と結果を順番に並べて書ける関数です。

例えば点数評価なら、「=IFS(B2>=90,”A”,B2>=80,”B”,B2>=70,”C”,B2>=60,”D”,TRUE,”E”)」のように書けます。

最後の「TRUE,”E”」は、どの条件にも当てはまらなかった場合のデフォルト値として使う考え方で、IF関数の最後の「それ以外」に近い役割を持ちます。

ただし、IFS関数も条件の順番は重要です。

点数評価で「B2>=60」を先に書くと、90点でも先に60点以上の条件に当てはまってしまうので、期待どおりの評価になりません。

それと、古いExcelではIFS関数が使えない場合があるので、ファイルを共有する相手のバージョンにも注意が必要です。

多分岐をシンプルに書ける一方で、互換性を重視する職場ではIF関数のネストを使ったほうが無難なケースもあります。

分類コードや部署名みたいに、1つの値に対して完全一致で結果を切り替える場合は、SWITCH関数も便利です。

例えば、A2が「営業」なら「S01」、「経理」なら「A01」、「人事」なら「H01」と表示したいときは、「=SWITCH(A2,”営業”,”S01″,”経理”,”A01″,”人事”,”H01″,”未登録”)」のように書けます。

IF関数で同じことをするとネストが深くなりますが、SWITCH関数なら「値と結果の対応表」みたいに読めます。

ただ、「80点以上」みたいな範囲条件にはIFS関数やIF関数のほうが自然です。

条件がさらに多い場合は、IF関数だけで解決しようとしない判断も大切です。

商品コードごとの単価、部署ごとの担当者、ランクごとの手数料など、対応関係が一覧表として管理できるものは、VLOOKUP関数やXLOOKUP関数で別の表を参照したほうが修正しやすくなります。

数式の中に条件をすべて埋め込むと、単価変更や分類追加のたびに数式を編集しなければなりません。

条件分岐はIF、複数の対応表は検索関数、範囲ごとの多段階評価はIFSや整理したネスト、みたいに使い分けると、Excelファイル全体が扱いやすくなります。

IF関数で複数条件を設定するときの基本は、まず判定したい条件を日本語で整理して、それをExcelの記号に置き換えることです。

以上・以下の境界値、ANDとORの違い、ネストするときの条件の順番、最後に該当しない場合の処理をしっかり押さえれば、複雑な分岐も安定して作れます。

最初は短いIF関数から始めて、条件が増えてきたらIFS関数、SWITCH関数、検索関数への置き換えも検討しましょう。

数式を短くすることだけじゃなく、後から読める形にしておくことが、実際に使えるExcel作成のコツです。

広告