2023年4月12日【ID:0】
【Excel】ORは「+」、ANDは「*」でも表現できる!?
IF関数などにOR条件やAND条件を使う場合、一般的にはOR関数やAND関数を活用するかと思います。
しかし、最新の機能「スピル」を活用した場合やFILTER関数などで条件を設定する場合に、OR関数やAND関数では上手く計算できないことがあります。
この原因は、OR関数とAND関数が配列数式に対応していないためです。
例えば、次のように、「B列の値が3、尚且つ、C列の値が3の場合にTRUE」と求める場合、AND関数で複数の範囲を設定すると、セルD3やD4に展開されることなくFALSEとなってしまいます。
この理由は、AND関数は引数の内容に対してすべてがTRUEの場合にTRUEを返すという物だからです。
なので、「行単位で求める」などのことが実現できません。
そんな時、AND関数の代わりに活用できるのが「*」になります。
AND条件を「*」で結ぶことにより下記のように求めることができます。
TRUEは「0」以外の数字、FALSEは「0」としても表現することができるので、このように表示されます。
TRUEもしくはFALSEで表現したい場合は、IF関数などを組み合わせてもいいかもです。
このように求めることができました。
では、なぜTRUEは「*」、FALSEは「+」で求めることができるのかを解説します。
基本、TRUEという値とFALSEという値を数字で表現すると以下のように「1」と「0」になります。
TRUEは「1」として管理されていますが、実際は「0」以外の数字がTRUE扱いになります。
その仕組みを活用すると、OR条件の場合、条件式を「+」で結ぶことで、どれか1つでもTRUEがあれば、足し算の答えが1以上になりTRUEになります。
AND条件の場合、条件式を「*」で結ぶことで、どれか1つでもFALSEがあれば、掛け算の答えが0になりFALSEになります。
数式によっては、AND関数やOR関数を使うよりもスッキリするのでお勧めです。