まりふのひと

OR関数やAND関数を使用せずに複数の条件を設定するには

モーグ から『【オフパー】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は0TRUEは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),"やない","−"))
となる。果たして論理和や積を使うと...