このページで学べること|IF・AND・ORの違いと使い方
前回は、SUMIFやCOUNTIFを通して「条件を指定して集計する」方法を学びました。
今回は、その基本となるIF関数を一緒に学んでいきましょう。

この物語の案内役MISATOです。
今回は、「条件」による判別の関数を学んでいきましょう。
舞台は、診療所。発熱のあるなしで、IF関数さんが活躍している様子をのぞいてみましょう。
【IF関数の使い方】条件を指定して振り分けする


検温お願いします。
36.7度。では、こちらへどうぞ。

IFさん、今はどんなお仕事をされているのですか?

はい、今は37.5度以上の患者様を「発熱外来」にご案内しております。



式の説明をお願いできますか?

患者様をお待たせしているので手短に参りますわね。
まず、37.5度以上という条件を提示、
そうであれば「発熱外来」
違うのであれば、「通常診療」と表示させる式ですの。

その「そうであれば」というのは「TRUE」ということでしょうか?


ええ。初学者の方々は、TRUEや真といわれても正直つかみにくいと思いますわ。
簡単にいうと、条件が当てはまるならTRUEで、当てはまらないのであればFALSEですの。
=IF( 条件, 条件が成り立つ時の値, 成り立たない場合の値 )
補足:条件が成り立つ=TRUE、成り立たない=FALSE
今回F2に入力した式: =IF( C2>=37.5, “発熱外来“, “通常診療” )

「以上」を表すものが【 >= 】であることもポイントですね。
間違えて【 => 】と書かないように気をつけましょう。
【AND関数の使い方】複数条件の同時抽出


発熱があり、かつ咳がある患者さまの抽出にはあの方とご一緒でなければならないわ。

「あの方」とは…?

私、AND関数のことよ。
さぁ、IF様。発熱外来へ一緒に参りましょう。


私とIF様が同時判断すれば、「発熱」かつ「咳あり」を判断できますわ。

G2に入力された式: =IF(AND(C2>=37.5,D2=”あり”),”隔離室”,”発熱外来”)

ごめんなさい。式の意味が全くわかりません。
1つずつ解説してもらってもいいですか?

まず、私は複数条件が全て合致していれば「TRUE」を返す関数なの。
全てクリアしなければ「FALSE」を返すわ。
今回であれば、まずはこうね。
=AND(C2>=37.5, D2=”あり”)

“37.5以上”で、咳”あり”の場合にTRUEを返す、ということですか?
熱があるけど咳がない、または熱はないけど咳はある場合は「FALSE」…?

あら、あなた賢いわね。その通りよ。
TRUEと判断した結果を、IF様にお渡しするのが、私の役目。

IF関数さんは、条件→TRUE→FALSEの順番に書くので、最初にANDさんに活躍してもらうというわけですね!

そこまでわかっているなら、最初の式をみてももう大丈夫ね。
=IF(AND(C2>=37.5,D2=”あり”),”隔離室“,”発熱外来“)

私一人だけで判断したら、セルには「TRUE」「FALSE」と表示されるわ。

2人でコンビを組むからこそ、
複数条件にも対応でき、またセルに任意の文字を表示させることができるのです。
【OR関数の使い方】


今度は「または」の条件が発生したようです。

問題ないわ。私OR関数が対応いたします。
では、IF様ご一緒に参りましょう。


一見難しそうに見えますが、基本的な考え方はANDさんと同じでしょうか?

当たりよ!
私はどちらか一方の条件がクリアできれば「TRUE」を返すだけ。
今回私が1人で対応するとすればこうね。
=OR(C3>=37.5,E3=”あり”)

「高橋翔さん」の場合は、体温が37.4で、悪寒あり。
体温の条件は満たしていないけれど、悪寒ありの条件を満たしているので判定結果は「TRUE」。
IFさんがいなければセルに「TRUE」と表示させていたわ。

そこで、OR関数さんが「TRUE」と判断した結果を、私が受け取ってセルには「発熱外来」と表示させたわけなのです。
H4に入力された式: =IF(OR(C3>=37.5,E3=”あり”),”発熱外来“,”通常診療“)

⚠️体温が入力されていない!間違えた判定結果が表示されている



検温データがない新規患者さまの判定結果が誤って表示されているようです。

ごめんなさい。
私は判断できないデータがセルに入力されていれば、想定とは違う結果を出してしまうの。

ANDさん謝らないで。私だってそうよ。
条件式が正しく評価できないと、意図しない結果を出してしまうんですもの。

記入者も良かれと思って「未記入」とテキストメモを入れておいたのでしょうね。
まさか、それが判定間違いの元になってしまったなんて、皮肉なものですね。

でも私たちはそれぞれの個性をわかっていますもの。
正しいデータさえいただければ、正しく判断してセルに反映させますことよ。


C7にデータ「36.7」が入力されたことによって、正しく判定できましたね!

私たちの得手不得手をよく理解して、正しいデータをいただければと思いますわ。
《実践編》
ここまでで、IF・AND・ORそれぞれの役割が見えてきました。
では実際の表データを使って、どのように組み合わせるのか確認してみましょう。
今回は、学生チームがイベントの打ち上げ会をする時の事前とりまとめと、集金を管理した表を使って確認します。

(打ち上げに不参加のグループは支払いがない、という前提で話を進めます)
白色セルにはデータを手入力していきます。
上記表の黄色セルには今回までに学んだ関数や数式を入力します。
F列にはIF関数を入れ、参加の場合の参加人数が、欠席の場合は「不参加」と表示されます。
F2に入力した式: =IF( D2=”参加”, C2, “不参加“)
G列にはIF関数とOR関数を同時に使います。
(通常はAND関数を使う場面ですが、OR関数の動きを確認するためにここで活用しています)
参加の場合は予定支払額を、欠席の場合は不参加を表示させます。
G2に入力した式: =IF( OR(D2=”参加”, E2=”済” ), C2*K2, “不参加” )
H列には、IF関数とAND関数を同時に使います。
参加費を事前徴収済みの場合はその金額を、未払いであれば未集金と表示させます。
=IF( AND(D2=”参加”,E2=”済”), C2*K2, “未集金” )

まとめ
IF関数は、条件が成立するかどうかをもとに、表示する値を切り替える関数でした。
条件→成り立つ場合に表示させるもの→成り立たない場合に表示させるもの
この順番で式を書きます。
ただし、IF関数だけでは複数の条件を同時に判定することはできません。
その場合はANDやOR関数を組み合わせて使います。
ANDやORを入れる場所は、IFの「条件」の場所に入ります。
このような関数の組み合わせを入れ子といいます。
この言葉は覚えておいてよいかもしれませんね!
次のお話も舞台は同じく診療所。
今回学習した、IFにそっくりなIFS関数が活躍します。
お楽しみに!!


