たとえば、4 月から 1 月の間の販売個数や、江田さんの販売個数など、複数の条件を満たすデータを検索する必要がある場合は、AND と OR 関数を同時に使います。 次に例を示します。
この式では、AND 関数が OR 関数の中でネストされ、2011 年 4 月 1 日から 2012 年 1 月 1 日までの間に販売された個数、または江田さんが販売した個数が検索されます。 返されるのを確認できます Nancy によって販売されたユニットの場合は True、また、数式で指定された日付の間に Tim と Ed によって販売されたユニットの場合は True です。
フォームに含まれる、コピーして貼り付けることができる式は次のとおりです。 サンプルのブックでこれをいろいろと試したい場合は、この記事の最後を参照してください。
=OR(AND(C2>DATE(2011,4,30),C2<DATE(2012,1,1)),B2="江田")
この式について、より詳しく見てみましょう。 OR 関数には、true または false かどうかを判断するのにテストするための引数のセット (データの集まり) が必要です。 式の中で、最初の引数は AND 関数で、DATE 関数がその中にネストされており、2 番目の引数は "江田" さんです。 この式は、ある販売が、2011 年 4 月 30 日より後、2012 年 1 月 1 日より前に行われ、かつ江田さんによって行われたものであるかどうかテストする、と解釈できます。
AND 関数は、True または False を返します。 OR や IF などの他の関数の機能を拡張するには、ほとんどの場合、AND を使います。 この例では、OR 関数は、AND 関数なしでは正しい日付が検索されません。
AND と OR を IF と共に使う
また、AND と OR を IF 関数と共に使うことができます。
この例では、市場の規模が小さな南部で働いているのでなければ、少なくとも ¥12,500,000 分の商品を販売するまでボーナスが得られません。 南部で働いているのであれば、¥10,000,000 売り上げたらボーナスを受け取る権利が得られます。
=IF(OR(C4>=12500000,AND(B4="南部",C4>=10000000))=TRUE,C4*0.12,"ボーナス支給なし")
もう少し詳しく見てみましょう。 IF 関数を正しく実行するには、3 つのデータ (引数) が必要です。 1 つ目は論理テスト、2 つ目はテストが True を返すかどうかを確認する値、3 つ目はテストが False を返すかどうかを確認する値です。 この例では、OR 関数とその中に入れ子になっているすべての関数が論理テストを提供します。 "" と読み取ることができます。列 C の値が "South" でない限り、125,000 以上の値を探し、100,000 を超える値を探し、両方の条件が true になるたびに値に 0.12、手数料額を乗算します。 それ以外の場合は、"ボーナスなし" という単語を表示します。
サンプル データ
この記事の例を使って作業を行う場合は、次のテーブルをスプレッドシートの A1 セルにコピーしてください。 コピーする場合は、見出し行を含むテーブル全体を選ぶようにします。
販売員 |
地域 |
売上 |
数式/結果 |
---|---|---|---|
山神 |
東部 |
87925 |
=IF(OR(C2>=12500000,AND(B2="南部",C2>=10000000))=TRUE,C2*0.12,"ボーナス支給なし") |
阿藤 |
北部 |
100000 |
=IF(OR(C3>=12500000,AND(B3="南部",C3>=10000000))=TRUE,C3*0.12,"ボーナス支給なし") |
根本 |
西部 |
145000 |
=IF(OR(C4>=125000,AND(B4="南部",C4>=100000))=TRUE,C4*0.12,"ボーナス支給なし") |
木山 |
南部 |
200750 |
=IF(OR(C5>=12500000,AND(B5="南部",C5>=10000000))=TRUE,C5*0.12,"ボーナス支給なし") |
川井 |
南部 |
178650 |
=IF(OR(C6>=12500000,AND(B6="南部",C6>=10000000))=TRUE,C6*0.12,"ボーナス支給なし") |
トーマス |
北部 |
99555 |
=IF(OR(C7>=12500000,AND(B7="南部",C7>=10000000))=TRUE,C7*0.12,"ボーナス支給なし") |
森野 |
東部 |
147000 |
=IF(OR(C8>=12500000,AND(B8="南部",C8>=10000000))=TRUE,C8*0.12,"ボーナス支給なし") |
金子 |
北部 |
213450 |
=IF(OR(C9>=12500000,AND(B9="南部",C9>=10000000))=TRUE,C9*0.12,"ボーナス支給なし") |
青木 |
南部 |
122680 |
=IF(OR(C10>=12500000,AND(B10="南部",C10>=10000000))=TRUE,C10*0.12,"ボーナス支給なし") |
柴田 |
西部 |
92500 |
=IF(OR(C11>=12500000,AND(B11="南部",C11>=10000000))=TRUE,C11*0.12,"ボーナス支給なし") |
石田 |
東部 |
88350 |
=IF(OR(C12>=12500000,AND(B12="南部",C12>=10000000))=TRUE,C12*0.12,"ボーナス支給なし") |
読み上げ |
西部 |
102500 |
=IF(OR(C13>=12500000,AND(B13="南部",C13>=10000000))=TRUE,C13*0.12,"ボーナス支給なし") |