Excel 論理関数AND・ORとIFS(IF)の役割の違いとは?

こんにちは。

先日、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関数を組み合わせた式を見ると、

「判定する関数」と「値を返す関数」が役割分担していることがより明確に分かるでしょう。

 

「この関数どういう意味?」 

「どの関数を使えば欲しい結果が出る?」

など疑問があれば、いつでもスタッフにお声がけくださいね♪