大人の発達障害者の挑戦日記

30代後半で成人発達障害者となった私の日記

Excelに挑戦(応用)2:AND関数とOR関数


スポンサーリンク

こんにちは。エイキチです。

最近、Office 365のExcelを使っています。今回はAND関数とOR関数を使ってみました。

条件式

AND関数とOR関数をIF関数に応用するというのが今回の目的です。

そのための準備として、条件式について整理しておきます。

Excelでは「1=1」や「1=2」という式は論理式というようです。条件式が正しい場合は「TRUE」、正しくない場合は「FALSE」という値になります。正しい、正しくないという言い方の代わりに「真」「偽」という用語を使うのが一般的のようです。「1=1」は真であり、結果はTRUEという値になります。「1=2」という式は偽であるので、FALSEという値になります。

例えば、セルに「=(1=2)」と入力するとセルにはFALSEと表示されます。数式は「=FALSE」になり、「FALSE」と表示されるという仕組みのようです。

f:id:otona-hattatsushougai-challenge:20181107214810p:plain

どうやら、数式でのTRUEとFALSEという文字列は特別な値として扱われるようです。直接「=FALSE」と入力してもFALSEと表示されます。

論理式で使える「=」などは以下があります。

記号 A○Bの場合の意味
> AはBより大きい
>= AはB以上
< AはBより小さい
<= AはB以下
== AはBと等しい
<> AはBと等しくない

最後は違和感あるかもしれませんが、「=(1<>2)」と入力してみるとTRUEになります。論理式で使用できるのは上記で全部だと思います。

IF関数

IF関数では論理式を引数で使います。AND関数やOR関数をIF関数に使う前に、基本的な使い方を見ておきます。

「fx」ボタンでIF関数を使おうとすれば、「関数の引数」ダイアログが表示されます。

f:id:otona-hattatsushougai-challenge:20181107214807p:plain

一番上の入力欄には論理式を入力します。簡単に動きを見たいなら、「1=1」と入力してしまえば良いです。次の入力欄は条件式が真の場合に、関数の結果として表示する値です。例えば、「"○"」と入力すれば、真の場合に「○」が表示されます。ダブルクォーテーション「"」で囲んでいるのは、Excel側に文字列と解釈してもらうためです。

とりあえず、以下のように入力してみると動きが分かると思います。

入力欄 入力値
論理式 1=1
値が真の場合 "○"
値が偽の場合 "×"

セルには○が表示されます。

×を表示させたいなら、論理式を「1=2」とすれば良いです。

実際にIF関数を使うときは、論理式は「A1=B1」などセルの参照を記述することが多いと思います。

AND関数とOR関数

AND関数とOR関数をIF関数に応用する前に、AND関数とOR関数の使い方を先に見ておきます。

AND関数の引数は論理式で、複数記述することが出来ます。

数式は例えば以下のようなものです。

  • =AND(B2>=80,C2>=80)

B2セルが80以上、C2セルが80以上という2つの論理式を記述しています。なので、引数のパターンとしては、「B2セルが80以上」がTRUE/FALSE、「C2セルが80以上」がTRUE/FALSEというパターンがあります。

このように2つの引数を使ったAND関数の結果は次のようになります。

第1引数 第2引数 AND関数の結果
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE

両方の条件を満たすときだけTRUEという事になります。

OR関数も同じような書き方が出来ます。2つの引数を使ったOR関数の結果は次のようになります。

第1引数 第2引数 OR関数の結果
TRUE TRUE TRUE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE

少なくともどちらかの一方の条件が満たされればTRUEという事になります。

具体例として、以下のような、数学と国語の点数の表があるとします。数学と国語の点数で合格か不合格を決めるという意図の表です。

受験番号 数学 国語 ANDで判定 ORで判定
1 80 80
2 80 79
3 79 80
4 79 79

表の左上である「受験番号」の位置がA1セルであるとします。判定の列は次のルールとします。

  1. ANDで判定の列は、「数学と国語の両方が80点以上」は合格、それ以外は不合格
  2. ORで判定の列は、「数学と国語の少なくともどちらか一方が80点以上」は合格、それ以外は不合格

合格か不合格かということに注目すれば、次の形のIF関数になることがわかると思います。

  • IF(○○○, "合格", "不合格")

まず、受験番号1番の行について、判定のセルを埋めることにします。B2セルとC2セルの値を判定すれば良いので、○○○に入るのはそれぞれ次の論理式です。

  • AND(B2>=80,C2>=80)
  • OR(B2>=80,C2>=80)

なので、IF文は次のようになります。

  • =IF(AND(B2>=80,C2>=80),"合格","不合格")
  • =IF(OR(B2>=80,C2>=80),"合格","不合格")

あとは下の方へコピーアンドペーストして表が完成です。

f:id:otona-hattatsushougai-challenge:20181107214803p:plain

他にも応用はあると思いますが、今回はこのようなものしか思い浮かびませんでした。

最後に一言

論理式を知っている人は馴染みのある関数だと思います。