配列でIF関数のAND条件
関数技BEST 55d回
配列でAND条件
作業列を作らずに配列でAND条件式をIF関数の数式に取り込みます。
配列数式を確定するときは、Ctrl + Shift + Enterを押します。
また、Excel2007以降なら、IF関数のAND条件による合計をSUMIFS関数で行う事ができます。
Excelバージョン:
AND関数を使う代わりに(条件)*(条件)
AND関数を使わなくても、IF関数の論理式の中にAND条件を入れると次の様になります。式をD6セルに入れました。
結果は同じなのでなれたらこの方がすっきりして良いかと思います。
=IF((A6="ワインA")*(B6<=$B$2),C6,"")
=IF((A6="ワインA")*(B6<=$B$2),C6,"")
数式をコピーして、それを集計すると前回と同じように、商品はワインAで11/12までの売上の合計が出ますね。
配列でIF関数の式を集計する
これを作業列を作らずに配列で行うには、合計はSUM関数を使いますので、C2セルに入れる式は以下のようにします。
=SUM(IF((A6:A14="ワインA")*(B6:B14<=$B$2),C6:C14,""))と入力して、
Ctrl + Shift + Enterで配列数式を入力します。
=SUM(IF((A6:A14="ワインA")*(B6:B14<=$B$2),C6:C14,""))と入力して、
Ctrl + Shift + Enterで配列数式を入力します。
するとC2セルには、配列数式が入力されて、結果の5,000が表示されます。
{=SUM(IF((A6:A14="ワインA")*(B6:B14<=$B$2),C6:C14,""))}
{=SUM(IF((A6:A14="ワインA")*(B6:B14<=$B$2),C6:C14,""))}
ワインBの11/16までの売上の合計も同様にIF関数のAND条件式を使った配列にしてみましょう。
{=SUM(IF((A6:A14="ワインA")*(B6:B14<=$B$2),C6:C14,""))}
{=SUM(IF((A6:A14="ワインA")*(B6:B14<=$B$2),C6:C14,""))}
SUMIFS関数を使うとIF関数のAND条件と同じになる
Excel2007からは、SUMIFS関数が使えますので、わざわざ配列を使わなくても、SUMIFS関数でAND条件の合計を求めることができます。
難しく見えるのは、条件で日付の入力されたセルよりも小さいという指定の部分だけです。
結果はこのように、シンプルになります。