Excel: 条件付きの範囲内の異なる値の数をカウントするにはどうすればよいですか?

Excel: 条件付きの範囲内の異なる値の数をカウントするにはどうすればよいですか?

かなりたくさん読んでテストしましたが、まだ問題の解決策を見つけることができません。

私が見つけた近い解決策は、以下の記事で提案されている 2 番目の解決策です。 範囲内の異なる値の数を数えるにはどうすればよいでしょうか?

基本的に、列 B が特定の値に対応しているときに、列 A で一意の値がいくつあるかを調べたいのです。

次のようなスプレッドシートを想像してみましょう

COL A      COL B
abc        TRUE
abc        TRUE
bef        TRUE
bef        FALSE
hgf        TRUE
swd        FALSE
rth        FALSE
kjh        TRUE

列 B に TRUE が含まれる A 内の一意の値の数を計算する (表示しない) 数式を考えたいと思います。上記の例では、4 になるはずです。

さて、私は以下の式が何らかの形で役立つことを期待していました

=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100))

一度 で修正しましたCOUNTIFSが、明らかに機能せず、その理由がわかりません。また、最初の部分の理由もよくわかりません。A2:A100<>""

答え1

ピボット テーブルを使用します。数式は必要ありません。数回クリックするだけです。

列 A (私のサンプルでは「1」と呼ばれています) を行ラベルにドラッグし、列 B (私のサンプルでは「2」と呼ばれています) を列ラベルにドラッグし、任意の列を値領域にドラッグして、値の計算を「カウント」に設定します。

ピボット テーブルの 1 行上で、単純な Count() 関数を使用して、一意の数を返します。

ここに画像の説明を入力してください

ピボット テーブルをフィルターして、「true」の項目のみ、または「false」の項目のみを表示できます。

答え2

この「配列数式」を試してみてください

=SUM(IF(FREQUENCY(IF(B2:B100=TRUE,IF(A2:A100<>"",MATCH(A2:A100,A2:A100,0))),ROW(A2:A100)-ROW(A2)+1),1))

確認済みCTRL+ SHIFT+ENTER

答え3

次の数式を使用して、列 にAある列 の値を一覧表示できます。"TRUE"B

セルに+ +D2を使用してこの配列数式を入力し、下にドラッグして条件を満たすすべての一意の値を表示します...CTRLSHIFTENTER

=INDEX($A$2:$A$9, MATCH(0, COUNTIF($D$1:D1,$A$2:$A$9)+IF($B$2:$B$9<>TRUE, 1, 0), 0))

編集*写真を追加しました。 ここに画像の説明を入力してください

関連情報