ITライター 立山秀利
Excelでセルの表示内容を条件に応じて変えたい時、AND関数やOR関数を用いれば、より複雑な条件を指定できる。今回はそれらの関数の使い方を紹介する。
AND関数とOR関数を使うと、比較演算子のみを使う場合に比べ、より複雑な条件で判定できる。AND関数は複数の条件がすべて同時に成立する場合のみ、全体で成立と判定する関数である。
----------------------------------------
=AND(条件1, 条件2)
条件1 1つ目の条件式
条件2 2つ目の条件式
----------------------------------------
例えば、次の画面のように、氏名と性別と年齢のデータがA4~C10セルに入力された会員リストがあるとする。ここで、女性であり、なおかつ、20歳未満かどうかを会員ごとに判定したいとする。そして、判定結果はF4~F10セルに、TRUEまたはFALSEで表示するとする(TRUEは条件が成立、FALSEは不成立を意味する特別な値)。
その場合、「性別が女性」および「年齢が20歳未満」という2つの条件がすべて同時に成立するかどうかをAND関数で判定すればよい。
----------------------------------------
=AND(B4="女性",C4<20)
----------------------------------------
上記の式をF4セルに入力すると、判定結果が表示される。B4セルのデータは女性であり、C4セルのデータは18なので20歳未満である。2つの条件がすべて同時に成立するので、判定結果はTRUEになる。
上記のF4セルの式を、オートフィル機能などを利用してF10セルまでコピーすれば、会員ごとの判定結果が表示される。F9セルも2つの条件がすべて同時に成立するのでTRUEになる。
(画像をクリックすると拡大表示します)
OR関数は複数の条件が少なくとも1つは成立する場合、全体で成立と判定する関数である。
----------------------------------------
=OR(条件1, 条件2)
条件1 1つ目の条件式
条件2 2つ目の条件式
----------------------------------------
ここで、女性または20歳未満かどうかを会員ごとに判定したいとする。判定結果はG4~G10セルに、TRUEまたはFALSEで表示するとする。
その場合、「性別が女性」および「年齢が20歳未満」という2つの条件が少なくとも1つは成立するかどうか、OR関数で判定すればよい。例えばG4セルなら、下記の式を入力する。
----------------------------------------
=OR(B4="女性",C4<20)
----------------------------------------
B4セルのデータは女性であり、C4セルのデータは18なので20歳未満である。2つの条件で少なくとも1つは成立するので、判定結果はTRUEになる。
上記のG4セルの式を、オートフィル機能などを利用してG10セルまでコピーすれば、会員ごとの判定結果が表示される。G5セルは男性で22歳と、2つの条件がいずれも成立しないのでFALSEになる。G6セルは男性で1つ目の条件は成立しないが、年齢が19歳で2つ目の条件は成立し、少なくとも1つは成立するのでTRUEになる。
(画像をクリックすると拡大表示します)
AND関数とOR関数は通常、IF関数やSUMIF関数、COUNTIF関数などで条件式を指定する際に用いる。
今回はIF関数での使用例を紹介する。先ほどの会員リストにて、20歳未満の女性のみ割引するキャンペーンを実施すると仮定する。各会員が割引対象かどうか判定し、該当するならD4~D10セルに「○」を表示したいとする。
その場合、割引対象かどうかは先述のAND関数を使った条件式で判定できる。その条件式をIF関数に指定し、割引対象なら「○」を表示し、そうでなければ何も表示しないようにすればよい。例えばD4セルなら以下の式になる。
----------------------------------------
=IF(AND(B4="女性",C4<20),"○","")
----------------------------------------
この式をオートフィル機能などでD10セルまでコピーすれば、割引対象の会員なら「○」が表示されるようになる。
(画像をクリックすると拡大表示します)
次は割引対象の条件が、女性または20歳未満に変更されたと仮定する。その場合、割引対象かどうかは先述のOR関数を使った条件式で判定できる。例えばD4セルなら以下の式になる。
----------------------------------------
=IF(OR(B4="女性",C4<20),"○","")
----------------------------------------
この式をオートフィル機能などでD10セルまでコピーすれば、割引対象の会員なら「○」が表示されるようになる。
(画像をクリックすると拡大表示します)
AND関数もOR関数も今回は条件が2つのケースを紹介したが、3つ以上の条件でも利用できる。AND関数なら「=AND(条件1, 条件2, 条件式3)」などのように、条件式を「,」で区切って並べて行けばよい。OR関数も同様だ。
なお、9月号で紹介したSUMIFS関数とCOUNTIFS関数では複数の条件を指定できるが、AND関数を用いた場合と同じ判定を行うことになる。
このようにAND関数やOR関数を利用すれば、より複雑な条件でのセル表示の変更や、データの合計や個数を求めることも容易になるだろう。
立山秀利(たてやま・ひでとし)
カーナビのソフトウェア開発、Webプロデュース業務を経て、現在は、システムやネットワーク、Microsoft Officeを中心に執筆中。 主な著書に『Excel VBAのプログラミングのツボとコツがゼッタイにわかる本』などがある。
(監修:日経BPコンサルティング)