【Excel】IF関数で複数の条件を扱う(OR関数、AND関数、NOT関数)

PC

IF関数で複数の条件を扱う1つの方法として、OR関数、AND関数を使うことが考えられます。今回は、OR関数とAND関数について説明した後、実際に複数の条件がある場合を例にしてIF関数を使用してみたいと思います。

IF関数の使い方や真(TRUE)・偽(FALSE)については、別記事で説明していますので、IF関数や真(TRUE)・偽(FALSE)がよくわからないよという方は先にこちらを見ていただくことをおすすめします。

はじめに

複数の条件がある場合のIF関数を使用する前に、論理和、論理積、否定について説明します。

論理和(Logical disjunction)

論理和(OR)は、OR関数の元となる演算で表1のようになります。論理変数AまたはBのいずれかが1(TRUE)であれば、結果(A+B)が1(TRUE)となります。

なお、表1のように論理変数と演算結果を一覧表にしたものを真理値表(truth table)と言います。

\(A\)\(B\)\(A+B\)
000
011
101
111
表1:真理値表(論理和)

論理積(Logical conjunction)

論理積(AND)は、AND関数の元となる演算で表2のようになります。論理変数AとBの両方(すべて)が1(TRUE)のときのみ、結果(A・B)が1(TRUE)となります。

\(A\)\(B\)\(A・B\)
000
010
100
111
表2:真理値表(論理積)

否定(Negation)

否定(NOT)は、次のような演算になります。NOT関数の元となる演算で表3のようになります。表3のように、NOT演算をすると1(TRUE)と0(FALSE)が反転します。

\(A\)\(\overline{A}\)
01
10
表3:真理値表(否定)
tayuyu
tayuyu

今回は、論理和、論理積しか使わないけど、論理学の問題を数学的に表現するブール代数(Boolean algebra)と呼ばれる分野では、論理和、論理積、否定が基本演算になるので否定も書いておきました。

OR関数

OR関数は、論理和を求める関数です。

OR関数の書式

OR(論理式1, [論理式2], …)

論理式必須1つ目の論理式を指定します。
※真(TURE)または偽(FALSE)に評価できる式を論理式と呼ぶことにします。
論理式2
省略可能2つ目(nつ目)の論理式を指定します。
表4:OR関数の引数

OR関数の使用例

表5のような場合を例として、OR関数を使用してみます。

AB
18055
表5:OR関数の使用例

OR(A1>60,B1>60)

1つ目の引数「A1>60」すなわち「80>60」はTRUE(1)で、2つ目の引数「B1>60」すなわち「55>60」はFALSE(0)になります。1+0=1となるため、結果はTRUE(1)となります。

tayuyu
tayuyu

ExcelのOR関数、AND関数、NOTの結果(戻り値)は、TRUEやFALSEで表示されます。

AND関数

AND関数は、論理積を求める関数です。

AND関数の書式

AND(論理式1, [論理式2], …)

論理式必須1つ目の論理式を指定します。
論理式2
省略可能2つ目(nつ目)の論理式を指定します。
表6:AND関数の引数

AND関数の使用例

表7のような場合を例として、AND関数を使用してみます。

AB
18055
表7:AND関数の使用例

AND(A1>60,B1>60)

1つ目の引数「A1>60」すなわち「80>60」はTRUE(1)で、2つ目の引数「B1>60」すなわち「55>60」はFALSE(0)になります。1・0=0となるため、結果はFALSE(0)となります。

NOT関数

AND関数は、否定を求める関数です。

NOT関数の書式

NOT(論理式)

論理式必須論理式を指定します。
表8:NOT関数の引数

NOT関数の使用例

表9のような場合を例として、NOT関数を使用してみます。

AB
180
表9:NOT関数の使用例

NOT(A1>60)

引数「A1>60」すなわち「80>60」はTRUE(1)です。1の否定は0となるため、結果はFALSE(0)となります。

複数条件のIF関数の使用例

「国語と算数の点数が60点以上」を満たした場合に「合格」、「国語と算数の点数が60点以上」を満たさなかった場合に「不合格」と表示をしたいとします。今回は例として、表のように入力されているとします。

ABC
1科目点数判定
2国語80
3算数55
表10:IF関数の使用例
図1:イメージ

IF関数を使って、B2セルの国語の点数とB3セルの算数のに応じて、C2セル(表)に「合格」または「不合格」を表示させる場合、次のような数式になります。

IF(AND(B2>=60,B3>=60),”合格”,”不合格”)

まずはIF関数の書式を思い出してみましょう。

IF(論理式, 真の場合, [偽の場合])

今回は、「国語と算数の点数が60点以上」という条件です。言い方を変えればと「国語が60点以上」かつ「算数が60点以上」という2つの条件です。そして、「かつ」ということは、論理積の関数であるAND関数を使うので、IF関数の引数の論理式には、AND関数を入れます。

それでは、AND関数の中身を見ていきましょう。AND関数の書式は下記のようでした。

AND(論理式1, [論理式2], …)

AND関数の1つ目の引数である論理式1には、国語の点数が入力されているB2セルと60を使用して、「B2>=60」と入力します。2つ目の引数である論理式2には、算数の点数が入力されているB3セルと60を使用して、「B3>=60」と入力します。よって、「AND(B2>=60,B3>=60)」となります。この「AND(B2>=60,B3>=60)」をIF関数の1つ目の引数である論理式に入れます。

「国語と算数の点数が60点以上」の場合に「合格」と表示するので、IF関数の引数の真の場合には、「“合格”」と入力します。「テストの点数が60点以上」でない場合に「不合格」と表示するので、引数の偽の場合には、「“不合格”」と入力します。

文字列を表示させたいときは”(ダブルクォーテーション)で文字を囲む必要があります。数値のみの場合は不要です。

最後に「IF(AND(B2>=60,B3>=60),”合格”,”不合格”)」の動作の確認です。

B2セルには80という数値が入力されており、論理式「B2>=60」すなわち「80>=60」は1(TRUE)となります。また、B3セルには55という数値が入力されており、論理式「B3>=60」すなわち「55>=60」はFALSE(0)となります。よって、「AND(B2>=60,B3>=60)」は、AND(TRUE,FALSE)となり1・0=0、すなわち、FALSE(0)になります。

IF関数の引数である論理式「AND(B2>=60,B3>=60)」がFALSE(0)になったため、引数の偽の場合に記載されている内容である「不合格」が表示されます。

おわりに

今回は、IF関数で複数条件を扱ためにOR関数やAND関数を説明しました。今回、紹介した関数を使用することで、複雑な条件にも対応することができます。

その他、IF関数に類する主な関数として、SUMIF、SUMIFS関数やCOUNTIF、COUNTIFS関数という関数も存在します。これらの関数の記事も書いていますので、よろしければご覧ください。


コメント

タイトルとURLをコピーしました