2013-05-21 31 views
2

我有两列,它们是相邻的,我需要从连接两列获得结果值的唯一计数,并需要将它们与列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和自定义函数。这些列不会有空白值并且总是有数据,我不相信我需要错误检查。

编辑
我可以在包含可乐& COLB的NamedList不同排列的计数。我不能做的是生成一个IF语句来测试NamedList:ColA =='A'。对于ColA,我只有3个不同的值,并且可以生成3个不同的函数,分别测试A,B & C.下面给出了NamedList的不同排列的计数上述显示,其等于6.

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

你尝试过什么吗?如果是的话,你遇到了什么问题? –

+0

@TimWilliams请看我的编辑。 – m4chine

回答

0

有获得采用了独特的计数的fairly standard methodSUMPRODUCT functionCOUNTIF functions。这可以适应一个独一无二的多列替换COUNTIF的COUNTIFS function

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!错误。这是分母中防止附加的空字符串和颠倒的标准。