【Excel】もう少し複雑な条件分岐ができるようになろう【AND/OR】


はじめに

前回の記事で『IF』を使った最もシンプルな条件分岐をご紹介しました。

今回は2つの関数(AND、OR)を覚えてもらって、もう少しだけ複雑な分岐ができるようになりましょう。

とはいってもまだまだ『複雑』というほどのものでもないので安心して読んでもらえればと思います。

そもそも前回の記事を読んでいない、もしくは『IF』の使い方なんて知らないよ、という方は前回の記事から読み始めてもらいたいと思います。

ANDとORを覚えよう

さて、今回はどんなことができるようになるのでしょうか。

いつもどおり今回も例を出しますね。

前回は国語だけの表を出しましたが、今回はそれに数学の点数も加えてみました。

この表を使って

(1)「国語も数学も50点を超えていれば『合格』と表示する」
(2)「国語または数学が50点をこえていれば『合格』と表示する」

なんてことをやってみたいと思います。

ANDを使ってみる

それではいきましょう。

まずは

(1)「国語も数学も50点を超えていれば『合格』と表示する」

というのをやってみます。

前回は、1つの教科(国語)だけを見て、基準となる点数(50点)以上であるかどうかを見ましたが、今回はその対象が2つ(国語と数学)あります

そしてその両方が条件を満たさなくてはなりません
そういう時には『AND』という関数を『IF』と組み合わせます。

AND関数

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

これだけ見てもよくわからないかもしれません。

前回の『IF』の時も『論理式』という言葉は出てきたと思います。
ここに条件(>=50)を入れましたね。
今回も同じです。ここに『国語が50以上、数学が50以上』というものを入れます。

すなわち、

=AND(国語>=50,数学>=50)

意味合いとしてはこんな感じですね。

論理式1が国語に関するもの、
論理式2が数学に関するものとなっています。

つまり『AND』関数は、複数の条件を半角カンマで区切って羅列するような書き方をするということです。

そうすると、羅列した条件を『すべて満たすとき』という条件を作ることができます
これは『AND』が『かつ』『~も』というような意味を含んでいるからです。

わかったような、わからないような、という感じだと思いますので具体的にいきましょう。

先ほどの表をもう一度見てみます。

佐藤さんの判定欄(E3)に入力します。

国語の結果がC3セルに、数学の結果がD3セルに入力されています。

この場合、『国語が50以上かつ数学50以上』という条件は、AND関数を用いて

AND(C3>=50,D3>=50)

このように書くことができますね。

これがIF関数の『条件』部分の論理式ということになります。

ということで前回同様にまとめてみると、

IF関数
=IF(論理式,[値が真の場合],[値が偽の場合])

で、

論理式:AND(C3>=50,D3>=50)
値が真の場合:“合格”
値が偽の場合:“不合格”

を代入する形ですから、

このようにE3セルに入力します。
Enterで確定すると、

佐藤さんは国語も数学も50以上という条件を満たしますので『合格』と表示されます。
下までオートフィルすると、

こうなりました。
国語、数学両方が50以上である人だけが『合格』と表示されています。

今回は『IF』関数の中に『AND』関数を入れ込んで表記しました。
このようにある関数の中にもう一つの関数を入れ込んで使う構造を『入れ子』と呼びます。
IF関数はよくこのような入れ子の構造をとります。

ORを使ってみる

次に今回紹介するもう一つの関数、『OR』を使ってみましょう。

初めに出したパターンの

(2)「国語または数学が50点をこえていれば『合格』と表示する」

というパターンの場合に使う関数です。

今回は、国語と数学の2つの点数をみて、そのどちらか片方が基準となる点数(50点)以上であるかどうか、を判定するようにします。

このような場合には『OR』という関数を『IF』と組み合わせます。

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

さきほどのAND関数と同じような構造ですね。

それもそう、ANDとORは

AND:入力した論理式がすべて真の時に真を返す
OR:入力した論理式のどれか1つが真であれば真を返す

という違いしかないからです。

『真と偽』という言葉に関してはIF関数の記事で書いた通りですが、
まぁ要はANDは条件が全部満たされなくてはならず、ORはいずれかが満たされればOK
というような感じです。

なので書き方は当然ANDの時と変わらず、

国語が50以上または数学が50以上』という条件はOR関数を用いて

OR(C3>=50,D3>=50)

こうなります。

もう大丈夫ですね、これもまとめると

IF関数
=IF(論理式,[値が真の場合],[値が偽の場合])

で、

論理式:OR(C3>=50,D3>=50)
値が真の場合:“合格”
値が偽の場合:“不合格”

となりますから、

このように入力します。
Enterで確定すると、

国語も数学も50以上である佐藤さんは当然合格ですね。
オートフィルで下まで埋めてみると、

国語が30点、数学が35点という岡田さんだけが不合格になりました。
他の人は国語か数学かのどちらかは50点以上であるため『合格』と判定されています。

『どっちも満たしてね』がAND
『どっちか満たせばいいよ』がOR

ということになりますね。

条件の数が増えたときは…

さて、先ほどまでは国語と数学という2科目だけを扱いましたが、数が増えても同じことです。

国語、数学、英語、理科、社会という5教科で考えてみるとして、
そのすべてが50点以上で合格とします。

『すべて』ですから『かつ』と言い換えられ、『AND』関数を使用することが分かりますね。

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

で、論理式2がカッコ書きになっていて、その後ろも『…』で書かれているのは、『論理式は1つ以上ならいいよ』ということを表しています。
つまり

こんな風に書けるわけです。

IFの論理式(条件式)部分に、論理式を5つ持ったAND関数を入れ込んでいる形ですね。
長くなっているのでちょっとわかりにくいかもしれませんが、構造は先ほどまでと何一つ変わりません。

5教科すべてが50点以上である場合だけ『合格』と表示されているのが分かると思います。
田中さんは国語だけ50未満ですが、その場合でもきちんと『不合格』と判定されていますね。

もちろん『OR』でも一緒です。
『OR』で条件を複数書いた場合は、そのうちのいずれか1つが満たされればOK(真)ということになります。

おわりに

今回は『AND』『OR』という2つの関数をご紹介しました。

この2つを覚えると、前回覚えた『IF』関数の条件を少し複雑に書けるようになります。

とても基本で大切な内容ですのでしっかり覚えてください。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください