2017-04-06 5 views
1

列Aが一致すると列Bの一意のテキスト値をカウントしようとしています。Excel:列Aが一致するときに列Bの一意のテキストをカウントします。

のは、私が

A 1  
A 1  
B 1  
B 2  
C 2  
C 2  
C 2 

を持っているとしましょう、私はそれがExcelの数式は、私が使用する

A has one unique text in column B  
B has two unique texts in column B  
C has one unique texts in column B 

を返すようにしたいですか?式で

+0

あなたが真にA、B、Cを与えずに出力を文章にしたいのであれば、あなたはVBAが必要です。 A、B、Cを列に入れたい場合は、次の列に一意の数値を与え、数式で簡単に行えます。しかし、ユニークな列Aを得ることは、そのような文では困難です。 –

答えて

2

あなたはヘルパー列のカップルを必要としています。次の列に続いて

=INDEX($A$1:INDEX(A:A,MATCH("zzz",A:A)),MATCH(0,COUNTIF($D$1:D1,$A$1:INDEX(A:A,MATCH("zzz",A:A))),0)) 

:最初我々はSECOND行でこの配列数式を入れて

この配列式に:

=SUM(IF($A$1:INDEX(A:A,MATCH("zzz",A:A))=D2,1/COUNTIFS($A$1:INDEX(A:A,MATCH("zzz",A:A)),D2,$B$1:INDEX(B:B,MATCH("zzz",A:A)),$B$1:INDEX(B:B,MATCH("zzz",A:A))))) 

どちらも配列式です。配列式であるため、編集モードを終了するときにEnterではなくCtrl-Shift-Enterを押して確定する必要があります。正しく実行された場合、Excelは{}を数式の周りに置きます。

続いて3番目の列に、我々はテキストを置くことができます。

=D2 & " has " & CHOOSE(E2,"one","two","three") & " unique " & IF(E2>1,"texts","text")& " in column B" 

あなたはユニークな3より大きいを持っている場合は、テキスト同等物を配置する必要があります。セルC1で

enter image description here

+0

OPは離れていますが、数式を少し小さくするのに役立つと確信しているので、「1」、「2」、「3」の代わりに数字を使うことができるのだろうかと思っています。 – BruceWayne

+1

@BruceWayne I彼らが望むのとまったく同じ出力を得るためには、どれくらいの作業が必要かを示していました。 –

0

あなたは入力+ Shiftキー+ Ctrlキーを押して、次の配列数式を入力することができます。

"A has " & C1 & " unique text in column B"

=SUM(--(FREQUENCY(IF(A1:A7="A",B1:B7),B1:B7)>0))

を、セルD1に、この通常の数式を入力します。

次の3行をBあなたが本当に数字 "1"を "one"という言葉に置き換えたいのであれば、それははるかに難しく、私はそれをお勧めしません。また、本当に欲しがっているのであれば、D1を修正して、ifステートメントを使ってC1が1より大きいかどうかをチェックし、複数の "s"を "text"という単語に追加することができます。

関連する問題