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”。