Excel。同じ列内のOR条件件数を、手早く数えるには、どうしたらいいの
<SUMPRODUCT関数>
複数条件で件数を求めるには、COUNTIFS関数をつかいますが、このCOUNTIFS関数は、別々の列内の条件ならば対応しています。
商品名が、ボールペンで 色が、赤 とかならば、COUNTIFS関数で対応できるというわけです。
しかし、今回求めたいのは、色が 赤 か 青 の件数です。
この場合、単一条件で件数を求めることができる、COUNTIF関数で、一つずつ、求めてた後に、合算すると求めることができます。
では、
F4をクリックして、COUNTIF関数をつかった数式を設定します。
=COUNTIF(C2:C11,E2)+COUNTIF(C2:C11,F2)
これで、4件と算出されました。
問題は無いといえば、無いのですが、この条件が増えれば、増えるたびに、COUNTIF関数の数式が増えていくわけです。
となると、かなり面倒ですし、条件が10あれば、COUNTIF関数も10必要な訳ですから、可読性も悪化します。
そこで、次のような方法もあります。
その方法は、SUMPRODUCT関数をつかいます。
では、F4の数式を削除して、改めて、SUMPRODUCT関数をつかった数式を設定していきます。
=SUMPRODUCT((C2:C11=E2:F2)*1)
これで、算出結果は先ほどのCOUNTIF関数と同じ、4件と算出されています。
もし条件が増えたとしても、E2:F2の範囲選択が広がるだけで、対応することができます。
それでは、数式を確認しておきましょう。
SUMPRODUCT関数は、掛けた結果を合計する関数で、配列数式の関数です。
内部的に配列処理を行って計算しています。
C2:C11のデータが、E2:F2。
すなわち、赤か青と合致していたら、TRUEを合致していなければFALSEを返してくれます。
TRUEやFALSEを算出してくれても、内部的に合計はできません。
そこで、「*1」することで、TRUEは1に、FALSEは0と数値化してくれるので、あとは合計することで、件数を求めることができるというわけです。