エクセルで行ごとに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))

 

 

 

 

 

 ただし、これでもcountifは範囲全体に対して評価されるため、行単位でのチャックにはなりません。

 

おすすめは以下のように行単位で処理する方法がある

 

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) ))

 

 

 

 

 

 

この式は、各行にA4B4の両方が含まれているかを判定し、その行数を合計します。

 

まとめ

判定対象

結果

Countif(…,A4)>0

範囲全体

スカラー(1 or 0

Sumproduct(--(…))

行単位で評価

正確なカウントが可能

 

 

 

 

 

 

コメント

このブログの人気の投稿

Word初心者も安心!左右に違う文章をレイアウトする3つの方法

Shift+Enterで”段落を変えずに改行”できる

「Wordで分数をきれいに表示する方法|数式ツールを使った簡単入力」