条件の組み合わせを調べるために、AND と OR を組み合わせて使う

たとえば、4 月から 1 月の間の販売個数や、江田さんの販売個数など、複数の条件を満たすデータを検索する必要がある場合は、ANDOR 関数を同時に使います。次に例を示します。

AND と OR を同じ式の中で使う

この式では、AND 関数OR 関数の中でネストされ、2011 年 4 月 1 日から 2012 年 1 月 1 日までの間に販売された個数、または江田さんが販売した個数が検索されます。式の中に指定した期間内に販売された個数が、江田さんが販売したものである場合、また、桂川さんと阿部さんが販売したものである場合は、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 と共に使う

また、ANDORIF 関数と共に使うことができます。

IF 関数の中でネストされた AND と OR 関数

この例では、市場の規模が小さな南部で働いているのでなければ、少なくとも ¥12,500,000 分の商品を販売するまでボーナスが得られません。南部で働いているのであれば、¥10,000,000 売り上げたらボーナスを受け取る権利が得られます。

=IF(OR(C4>=12500000,AND(B4="南部",C4>=10000000))=TRUE,C4*0.12,"ボーナス支給なし")

より詳しく見てみましょう。この関数が正常に実行されるには、次の 3 つのデータ (引数) が必要です。最初の部分は論理テストで、2 番目の部分はテストが True を返す場合の値で、3 番目は、False を返す場合の値です。この例では、OR 関数とその中にネストされているすべての内容が論理テストを構成しています。次のように解釈できます。列 C の値が "南" でない 12,500,000 以上の値を検索し、次に 10,000,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,"ボーナス支給なし")

ページの先頭へ

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×