>OR関数の条件式で多数のセルと値を比較する場合、
>OR(A1<B1,A1<B2,A1<B3,A1<B4,A1<B5,・・)と記述しています・・・
OR関数を使用して
A1<B1,A1<B2,A1<B3,A1<B4,A1<B5,・・のいずれかの条件が
成立していれぱTRUEを返すことを実現しようとしているので
配列数式を使ってC1に
{=IF(SUM(IF(A1<(B1:B30),1,0))>0,"A1は小さい","A1は小さくない")}・・・・・・・・・式1
({}は配列数式として入力した結果<数式の入力時に Ctrl キーと Shift キーを押しながら Enter キーを押す>であり、括弧を入力するわけではありません)
上記の方法でOR関数の真偽を判別すると同じ結果が得られます。
#2さんの方法では不等号の向きが変わると、
不等号の向きの変更とあわせて、MAXという関数そのものを変更しなければなりません。
しかし、上記の方法は不等号の向きを変えるだけで済みます。
(当然のことですが"A1は小さい","A1は小さくない"を"A1は大きい","A1は大きくない"に変更する必要はあります)
また不等号でなく等号(いずれかが一致するという条件)の場合は、式1のA1<(B1:B30)をA1=(B1:B30)にに変更すればOKです。
{=IF(SUM(IF(A1=(B1:B30),1,0))>0,"A1はB列に等しいものあり","A1はB列に等しいものなし")}
さらにOR関数の代わりに、AND関数を使用する場面なら、並列された条件の数が
(A1とB1からB30までを比較するとして)30個とすれば、
{=IF(SUM(IF(A1<(B1:B30),1,0))=30,"A1はB列すべてより小さい","A1はB列すべてより小さいとは言えない")}
AND関数の真偽を判別すると同じ結果が得られます。
作業列を用意して上記の意味を確認できます。
D1に
=IF(A1>B1,1,0)
D2に
=IF(A1>B2,1,0)
D3に
=IF(A1>B3,1,0)
以下同様とし最終行の次の行
D31に
=sum(D1:D30)と記述することとします。
複数ある条件のうち一つでも成立した場合、D列に1が立つので、D31は0より大きくなります。
つまり、D31が0より大きければ複数あるOR条件のうちいずれかが成立したことを意味します。
お礼
回答ありがとうございます。配列数式を知らなかったので勉強になりました。