计算两列串联的唯一组合

时间:2013-05-21 18:33:01

标签: excel count distinct multiple-columns

我有两列,它们是相邻的,我需要通过连接两列来获得结果值的唯一计数,并且需要将它们与列A的值相关联。例如:

ColA ColB
A    X
A    X
B    Y
B    Y
B    Z
C    X
C    Y
C    Z

指望A:1 计为B:2
计为C:3

我想通过命名列表来关联它们,一个列表包含两个列,另一个列表包含两个列。我宁愿不使用数组函数,我希望这个计数函数作为求和值。我很好用vba和自定义函数。列不会有空值并且总是有数据,我不相信我需要进行错误检查。

修改
我可以在NamedList中获得包含ColA&的不同排列的计数。 COLB。我不能做的是生成一个IF语句,测试NamedList:ColA =='A'。我只有3个不同的ColA值,可以生成3个不同的函数来测试A,B和B C单独。下面给出了上面NamedList显示的不同排列的计数,等于6。

=SUMPRODUCT((NamedList<>"")/COUNTIF(NamedList,NamedList&""))

1 个答案:

答案 0 :(得分:0)

使用fairly standard methodSUMPRODUCT function获得COUNTIF functions个唯一计数。这可以通过替换COUNTIFS function的COUNTIF来适应多个列的唯一性。

Unique Count 2 Columns

E4中的公式是,

=SUMPRODUCT((A$2:A$99=$D4)/(COUNTIFS(A$2:A$99, A$2:A$99&"", B$2:B$99, B$2:B$99&"")+(A$2:A$99<>$D4)))

要使上述公式适应命名范围,请使用INDEX function从二维单元格范围中删除列。

=SUMPRODUCT((INDEX(NamedList, 0, 1)=$D4)/(COUNTIFS(INDEX(NamedList, 0, 1), INDEX(NamedList, 0, 1)&"", INDEX(NamedList, 0, 2), INDEX(NamedList, 0, 2)&"")+(INDEX(NamedList, 0, 1)<>$D4)))

根据需要填写。

设计其中一个时遇到的最大障碍是避免#DIV/0!错误。这就是分母中附加的空字符串和反转标准所阻止的内容。