使用関数:IF、AND、OR
二つ以上の条件からランクを判定して表示させてみましょう。IF関数にネスト(入れ子)するのはAND関数とOR関数。「もしも(IF関数)」「これとこれ(AND関数)」が合ってればこのランク、「これかこれ(OR関数)」が合ってればこのランクという仕様です。
上図はこのページの例題サンプルです。
会員が商品Aと商品Bの両方を購入した場合は「特典1」が付き、どちらか一つを購入すれば「特典2」が付き、何も購入しなければ「特典なし」と表示されるよう設定してみましょう。「○」は「購入した」、「×」は「購入しない」という印です。
AND関数・OR関数を軽く理解する
AND関数もOR関数もIF関数も「論理」の関数です。
「数式」タブの「関数ライブラリ」から「論理▼」を開くと、仲良く並んでますね。
AND関数とは・・・
文字から推測される通り、「1の条件&2の条件&…が揃えばOK」という関数です。
指定した複数の条件全てに合致した場合に「TRUE(真)」を返します。一つでも合致しないものがあれば「FALSE(偽)」を返します。
OR関数とは・・・
文字から推測される通り、「1の条件、または2の条件…のどれかが合致すればOK」という関数です。
指定した複数の条件の内、どれか一つに合致した場合に「TRUE(真)」を返します。一つも合致しない場合にだけ「FALSE(偽)」を返します。
AND関数、OR関数はどちらもTRUEとFALSEの二つの値しか返しません。
条件が合えば「TRUE」と表示され、合わなければ「FALSE」と表示されるだけです。ですから、単独で使用されることはあまり無く、多くの場合、IF関数と組合せて使われることになります。
IF関数に入れ子してランク判定させる
IF関数は「もし、この条件だったら、こうなる」を実装する関数です。
ANDとOR関数と違って「こうなる」の値を指定できるところがとってもフレンドリーです。例題の「特典1」「特典2」はIF関数で設定します。
ランク判定を表示させる最初のセル(例ではE4)を選択し、「数式」タブの「関数ライブラリ」から「論理▼」から、「IF」を選んでクリックします。
「関数の引数」ダイアログボックスが開いたら、一番上の「論理式」にAND関数を入れ子します。
「論理式」のテキストボックスにカーソルがあることを確認して、
通常はセル番地が表示される「名前ボックス」に関数名が表示されているので、▼を押してドロップダウンさせたリストから「AND」をクリックします。
「ANDの関数の引数」ダイアログボックスが開いたら、
「論理式1」に一つ目の条件を入力し、「論理式2」に二つ目の条件を入力します。「論理式」の欄は入力毎に増えていき、最高255個までの条件をプラスできます。
今回の例では、
「条件1」を「商品Aを購入した=商品Aの欄に○が付いた」と指定
⇒「論理式1」に「C4="○"」と入力。
「条件2」を「商品Bを購入した=商品Bの欄に○が付いた」と指定
⇒「論理式2」に「D4="○"」と入力。
注意!「AND関数の引数」ダイアログの入力はこれで完了ですが、この時点ではまだ「OK」しません!
数式バーの関数式「=IF(AND(C4="○",D4="○"))」の中の「IF」をクリックすると、「IF関数の引数」ダイアログボックスに戻ることができます。
「IF関数の引数」ダイアログボックスに戻ったら、
「論理式」に先ほど指定したAND関数が入力されているのを確認してから、
「真の場合」に「”特典1”」と入力。
「論理式」に「商品Aの欄に○が付いて、尚且つ、商品Bの欄に○が付いたら」という条件を指定 ⇒ 「AND(C4="○",D4="○")」
「真の場合」に「”特典1”」⇒「条件が成立した場合には」「特典1と表示させます」と指定したわけです。
次に、「偽の場合」のテキストボックスにカーソルを置いて、「名前ボックス▼」ドロップダウンリストから今度は「IF」を選びます。
IF関数の中に更にIF関数を入れ子するわけです。
二つ目の「IF関数の引数」ダイアログボックスが開いたら、一番上の「論理式」に、今度はOR関数を入れ子します。
「論理式」のテキストボックスにカーソルがあることを確認して、「名前ボックス▼」ドロップダウンリストから今度は「OR」を選びます。
「OR関数の引数」ダイアログボックス が開いたら、
「論理式1」と「論理式2」に「AND関数の引数」の時と同じ値を入力します。
入力値は全く同じですが、この場合は「商品Aの欄に○が付くか、或いは、商品Bの欄に○が付くかどちらかであれば…」という指定になります。
再度、注意!「OR関数の引数」ダイアログの入力はこれで完了ですが、この時点ではまだ「OK」しません!
数式バー「=IF(AND(C4="○",D4="○"),"特典1",IF(OR(C4="○",D4="○"))」の中の後ろの方の「IF」をクリックして「IF関数の引数」ダイアログボックスに戻りましょう。
「IF関数の引数」ダイアログボックスに戻ったら、
「論理式」に先ほど指定したOR関数が入力されているのを確認してから、
「真の場合」に「”特典2”」と入力し、「偽の場合」に「”特典なし”」と入力します。
「論理式」に「商品Aの欄に○が付くか、或いは、商品Bの欄に○が付くかどちらかであれば…」という条件を指定 ⇒ 「OR(C4="○",D4="○")」
「真の場合」に「”特典2”」⇒「条件が成立した場合には」「特典2と表示」
「偽の場合」に「”特典なし”」⇒「条件が不成立の場合は」「特典なしと表示」
これで全ての条件が指定できました。
やっと「OK」が押せます!w
後は、オートフィルでコピーすればいいだけです。
「=IF(AND(C4="○",D4="○"),"特典1",IF(OR(C4="○",D4="○"),"特典2","特典なし"))」が最終の式となります。
ネスト(入れ子)を繰り返していけば、もっと複雑な条件構造も実装できるでしょう。