こんにちは。
先日、Excelの IFS関数 を学習していた生徒様から、こんなご質問をいただきました。
「Excelの論理関数って違いがよくわからない。
IFS関数は複数条件を設定できるっていうけれど、前に習ったAND関数やOR関数も複数条件だったよね。
IFSとAND・ORって同じじゃないの?どう違うの?」
確かに「複数条件を扱う」という点だけを見ると、どれも同じように見えるかもしれません。
しかし、AND・OR関数とIFS関数は“役割”がまったく異なる関数です。
今回は、それぞれの関数を「役割」という視点で整理しながら違いを見ていきましょう。
【論理関数は役割で3つに分類できる】
Excelの論理関数は一般的に「TRUE/FALSE を扱う関数」の総称ですが、役割で見ると次の3つに分類できます。
①条件を判定する関数(AND、OR、NOT、XORなど)
特徴:TRUE/FALSEを返す
役割:条件(論理式)を判定する
② 条件に応じて指定した値を返す関数(IF、IFS、SWITCHなど)
特徴:指定した値を返す
役割:条件に応じて結果を返す
③ エラーを判定し指定した値を返す関数(IFERROR、IFNAなど)
特徴:指定した値を返す
役割:エラー処理を行う
今回の疑問である「AND・OR」と「IFS」は、①と②の違いにあたります。
【① AND関数・OR関数は「条件を判定する関数」】
AND関数
構文 =AND(論理式1, 論理式2, …)
※論理式とは、TRUE または FALSE を返す式のことです。
例:B3>=80(意味:B3の値が80以上である)
・B3が80以上 → TRUE
・B3が80未満 → FALSE
AND関数は複数の論理式を受け取り、 すべて TRUE のときだけ TRUE を返します。
例: =AND(B3>=80, C3>=80)
(意味:B3の値が80以上、かつC3の値も80以上である)
返せる値は TRUE または FALSE のみ です。
OR関数
構文はAND関数とほぼ同じです。
=OR(論理式1, 論理式2, …)
違いは判定方法で、 1つでも TRUE があれば TRUE を返します。
例: =OR(B3>=80, C3>=80)
(意味:B3の値が80以上、または、C3の値が80以上のどちらかである)
こちらも返す値は TRUE / FALSE のみ です。
【② IFS関数は「条件と返す値を対応付ける関数」】
次にIFS関数を見てみましょう。
構文 =IFS(論理式1, 結果1, 論理式2, 結果2, …)
AND・ORとの大きな違いは、 「条件」と「返す値」がセットになっていることです。
例:=IFS( B3>=90,"A", B3>=80,"B", B3>=70,"C", TRUE,"D")
この式はB3の値を次の順番で判定します。
1.90点以上 → A
2.↑ではなく80点以上 → B
3.↑ではなく70点以上 → C
4.どれにも当てはまらなければ → D
IFS関数が返す「A」「B」などの値は、 数式の引数で予め指定した値です。
返す値として表示したい文字列は自由に設定できます。
(文字列は””ダブルクォーテーションで囲みましょう)
IF関数も同じグループ
IF関数もIFS関数と同じく、 条件に応じて指定した値を返す関数です。
構文 =IF(論理式, 真の場合, 偽の場合)
例: =IF(B3>=80,"合格","不合格")
・B3の値が80以上ならTRUE
→ TRUEの時は「合格」
・B3の値が80以上でなければFALSE
→ FALSEの時は「不合格」
IFは条件が1つ、IFSは複数条件を順番に判定できる点が異なります。
【①と②の違いをまとめると?】
① 条件を判定する関数(AND、OR、NOT、XORなど)
→ TRUE / FALSE しか返せない (イエスかノーでしか答えられない)
② 条件に応じて指定した値を返す関数(IF、IFS、SWITCHなど)
→ TRUE / FALSE の判定結果に応じて 好きな値を返すことができる
そのため、①の関数は②の関数の「条件部分」に組み込むことができます。
(※逆に②の関数を①の関数の条件として組み込むことも可能)
【IF関数 × AND関数で役割の違いがよく分かる】
例: =IF(AND(B3>=80, C3>=80),"合格","再試験")
(意味: B3とC3がどちらも80以上 → 合格、 それ以外 → 再試験)
処理の流れはこうです。
1.AND関数が条件を判定する
・B3>=80 → TRUE/FALSE
・C3>=80 → TRUE/FALSE
・両方TRUEなら AND は TRUE を返す
2.IF関数が値を返す
・ANDの結果がTRUE → 合格
・ANDの結果がFALSE → 再試験
このように、 「判定する関数」と「値を返す関数」が役割分担していることが分かります。
③ IFERROR・IFNAは「エラー処理を行う関数」
今回の質問とは直接関係ありませんが、論理関数にはエラー処理を目的とした関数もあります。
例: =IFERROR(C3/B3,"計算できません")
・計算が正常 → 計算結果をそのまま返す
・エラー → 「計算できません」を表示
(エラーの場合に表示したい文字列は自由に設定できます)
※IFNAは「#N/A」エラー(値がみつからない、使用できる値がない)専用の関数です。
【まとめ】
AND・OR関数とIFS関数は、どちらも複数条件を扱いますが、役割はまったく異なります。
•AND・OR
条件を判定し、TRUE / FALSE を返す関数
•IF・IFS・SWITCH
条件に応じて、あらかじめ指定した値を返す関数
•IFERROR・IFNA
エラーかどうかを判定し、エラー時に指定した値を返す関数
「複数条件」という言葉だけで覚えるのではなく、
“何を返す関数なのか”という役割に注目すると理解しやすくなります。
また、IF関数とAND関数を組み合わせた式を見ると、
「判定する関数」と「値を返す関数」が役割分担していることがより明確に分かるでしょう。
「この関数どういう意味?」
「どの関数を使えば欲しい結果が出る?」
など疑問があれば、いつでもスタッフにお声がけくださいね♪


