かなりたくさん読んでテストしましたが、まだ問題の解決策を見つけることができません。
私が見つけた近い解決策は、以下の記事で提案されている 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))
編集*写真を追加しました。