列 AI には、さまざまな名前のリストがあります。列 B には、0 または 1 のいずれかの値があります。
列 B に 1 がある列 A からすべての一意の名前の数を取得したい.
以下の配列式を使用すると、一意の名前を数えることはできますが、列 B に条件を適用することはできません。
=SUM(1/COUNTIF(A:A,A:A))
列 AI には、さまざまな名前のリストがあります。列 B には、0 または 1 のいずれかの値があります。
列 B に 1 がある列 A からすべての一意の名前の数を取得したい.
以下の配列式を使用すると、一意の名前を数えることはできますが、列 B に条件を適用することはできません。
=SUM(1/COUNTIF(A:A,A:A))
行が 100 行以下であると仮定して、この "配列数式" を試して、B2:B100 の同じ行に 1 がある A2:A100の異なる名前を数えます。
=SUM(IF(FREQUENCY(IF(B2:B100=1,IF(A2:A100<>"",MATCH(A2:A100,A2:A100,0))),ROW(A2:A100)-ROW(A2)+1),1))
で確認CTRL+SHIFT+ENTER
2つは同じではないため、一意ではなく異なると言うことに注意してください
このような?
=SUM(--(FREQUENCY(IF(($B$1:$B$8=1), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8), ""), COUNTIF($A$1:$A$8, "<"&$A$1:$A$8))>0)))
これは配列数式です。CTL+ SHIFT+を押す必要がありますENTER
スクリーンショット
式である必要がありますか?これを行う非常に簡単な方法は、列 A と B からピボット テーブルを作成することです。次に、列 B をフィルター フィールドとして設定し、A のカウントを値として設定します (列 A と B にラベルを付ける必要があります)。次に、ピボット シートの A4 (少なくともデフォルトでは) に回答が含まれている必要があります。これはどのサイズのリストでも機能し、実際には複数の条件がある場合に機能します。
それが公式でなければならない場合、それは完全にそうでなければなりませんか? 数式が機能する前に A で並べ替えることが許可されている場合、このワークフローはどうですか。私はこれに夢中ではなく、改善できると思います。
1) A (昇順または降順) で並べ替え、次に B (降順) で並べ替えます。
2) C では、C の各行に次のような式を入れます。
=if (and(A2<>A1,B2=1),1,0)
C1 は次のようになります。
=b1
C2 からデータの最後の行 (c500 など) までドラッグします。
3) 次に、C = sum(c1:c500) を合計してカウントします。
(必要な最大数がわかっている限り) データ行の下に数式をドラッグできます。すべての空白行に対して 0 が返されます。次に、A と B にデータを追加すると、残りは自動的に更新されます。おそらく、データも再ソートする必要があります。
ピボット テーブル ソリューションの優れた点の 1 つは、既存のデータの行に新しいデータを挿入する限り、データ セットに合わせて自動的に拡張できることです。もちろん仕分け不要。