エクセルで行ごとに2つの数字が両方含まれているか判定して、カウントする数式を検討する
Excel ---------------------------------------------- =SUMPRODUCT((COUNTIF(Draws!$C$2:$H$151,
A4)>0)*(COUNTIF(Draws!$C$2:$H$151, B4)>0))
×問題点:countifは範囲全体に対して集計してしまう
この式は、contif(…)>0の部分がスカラー値(単一の数値)として返るため、sumproductの中で配列として機能せじ、結果的に「1」または「0」しか返さない。
◎正しい書き方:行ごとに両方の数字が含まれているかを判定
Excel ---------------------------------------------- =SUMPRODUCT(--(COUNTIF(Draws!C2:H151,A4)*COUNTIF(Draws!C2:H151,
B4) > 0))
おすすめは以下のように行単位で処理する方法がある
Excel ---------------------------------------------- =SUMPRODUCT(--((MMULT(--(Draws!C2:H151=A4),
TRANSPOSE(COLUMN(Draws!C2:H2)^0))>0)* (MMULT(--(Draws!C2:H151=B4),TRANSPOSE(COLUMN(Draws!C2:H2)^0))>0)
))
この式は、各行にA4とB4の両方が含まれているかを判定し、その行数を合計します。
まとめ
|
式 |
判定対象 |
結果 |
|
Countif(…,A4)>0 |
範囲全体 |
スカラー(1 or 0) |
|
Sumproduct(--(…)) |
行単位で評価 |
正確なカウントが可能 |
コメント
コメントを投稿