モーグ から『【オフパー】Vol.882 OR関数やAND関数を使用せずに複数の条件を設定するには?』という件のメルマガが入った。以前、「Excel2003/if関数の中でor関数とand関数を同時に使う」と言う記事を書いたので気になって、サイト を覗いた。
例えば、
=IF(OR(A2=1,B2=1),1,0)
――A2かB2のどちらかが1の場合には1、そうでなければ0
上記のようなOR条件であれば、2つの条件を括弧で括り、加算します。
=IF((A2=1)+(B2=1),1,0)
下記のようなAND条件の場合には、
=IF(AND(A2=1,B2=1),1,0)
――A2とB2の両方が1の場合にのみ1、そうでなければ0
同様に2つの条件を括弧で括り、積算します。
=IF((A2=1)*(B2=1),1,0)
考え方としては、FALSEは0でTRUEは1以上というのを覚えておいて、積算した場合に、条件の中にひとつでも0があれば、条件全体が0になるが、加算した場合には、全てが0の場合(=どの条件にも当てはまらない)においてのみ、条件全体が0になる、とすればわかりやすいでしょう。
このような条件式の書き方が威力を発揮するのは、配列数式を使用するときです。配列数式ではOR関数とAND関数は使えません。
私のケースは、
- 「日付」が火曜日または金曜日の場合、予定に “まりふ”と表示
- 「日付」が月、水、木、土曜日の場合、予定に “やない”と表示
- 上記以外の場合、予定に“−”と表示
で、
=IF(OR(WEEKDAY(A2)=3,WEEKDAY(A2)=6),"まりふ",IF(OR(WEEKDAY(A2)=2,WEEKDAY(A2)=4,WEEKDAY(A2)=5,WEEKDAY(A2)=7),"やない","−"))
となる。果たして論理和や積を使うと...