web-dev-qa-db-ja.com

高度なsumproduct

数式の列を、基準に基づいてCountIfを効果的に使用する高度な合計積に凝縮しようとしていますが、数式をまとめるのに問題があります。

Sumproductを使用して一意の値の数をどのようにカウントしますか?下の写真には列Cがあります。列Cの合計を要約したいと思います(11)このヘルパー列を使用せずに単一の数式に変換します。現在の数式が数式バーに表示されています。

Column trying to condence

2
wizlog

次の配列数式を使用します。

=SUM(COUNTIF(A:A,INDEX(A:A,N(IF({1},MODE.MULT(IF(B2:B36="Y",ROW(B2:B36)*{1,1})))))))

配列数式であるため、編集モードを終了するときに、EnterではなくCtrl-Shift-Enterで確認する必要があります。

INDEXは基本的に、列Aの値の配列を作成します。ここで、Bの対応する値はYです。次に、この配列はCOUNTIFSに渡されます。

SUMラッパーにより、COUNTIFはINDEXによって提供される配列を反復処理し、各結果を合計します。

enter image description here

4
Scott Craner

別のオプションは、この「配列数式」を使用することです

=SUM(ISNUMBER(MATCH(A2:A36,IF(B2:B36="Y",A2:A36),0))+0)

で確認 CTRL+SHIFT+ENTER

「Y」が同じIDに対して複数回反対する可能性があるかどうかはわかりません。その場合、このバージョンでは二重カウントを回避できます。

2
barry houdini