Excel:当列A匹配时,计算B列中的唯一文本

当列A匹配时,我试图计算B列中唯一的文本值。

假设我有

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

我想要它回来

 A has one unique text in column BB has two unique texts in column BC has one unique texts in column B 

我将使用哪种Excel公式?

随着公式,你将需要一些帮手列:

在第一行中,我们把这个数组公式放在第二行:

 =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)) 

然后在它旁边的列中这个数组公式:

 =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))))) 

两者都是数组公式。 作为一个数组公式,在退出编辑模式时,必须使用Ctrl-Shift-Enter而不是Enter来确认。 如果正确完成,则Excel将在公式周围放置{}

然后在第三栏中我们可以把文字:

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

如果你有三个以上的独特的,你将需要把文字等值。

在这里输入图像说明

在单元格C1中,您可以通过按Ctrl + Shift + Enter键input以下数组公式:

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

然后在Cell D1中input这个正常的公式:

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

在接下来的三行中重复B和C.如果你真的想用数字“1”代替数字“1”,这将是更难,我不推荐它。 另外,如果你真的想要看到你可以修改D1使用if语句来检查C1是否大于1,如果是在单词“text”上加上复数“s”。