8/26/2024

Excel。同じ列内のOR条件件数を、手早く数えるには、どうしたらいいの【count】

Excel。同じ列内のOR条件件数を、手早く数えるには、どうしたらいいの

<SUMPRODUCT関数>

複数条件で件数を求めるには、COUNTIFS関数をつかいますが、このCOUNTIFS関数は、別々の列内の条件ならば対応しています。

同じ列内のOR条件件数

商品名が、ボールペンで 色が、赤 とかならば、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と数値化してくれるので、あとは合計することで、件数を求めることができるというわけです。