Excel - 根据另一个字段计算范围内的唯一身份

时间:2016-09-09 22:15:08

标签: excel ms-office

我的情况类似于Excel - Counting unique records in a group,但最后的转折令我头疼。

这基本上就是我的数据的外观:

A   B   C
--- --- ---
1   5   2   
1   6   2  
1   5   2  
2   7   1  
2   7   1  
2   7   1  
3   8   1  
3   8   1  

我正在尝试在C列中生成值。我需要计算B列中每个不同值的B列中唯一值的数量。对A列进行排序,以便所有值都在一起。

我试过这个:

=COUNTIFS($A$2:$A$8,$A2, $B$2:$B$1638,"<>"&"")

这样可以计算组中值的数量,但不会计算组中唯一值的数量(因此,在我的示例中,它将为3,3和2) 。我还尝试了一个我在this page找到的非常酷的技巧,它计算了整个列中的所有唯一值(所以在我的例子中,它一直是4)。我无法弄清楚如何分割差异。

我也试图弄清楚是否可以使用IF功能来完成,我也不知道了。这里有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

在单元格D2中使用此数组公式:

=SUM(--(FREQUENCY( IF( $A$2:$A$9=A2, MATCH($B$2:$B$9,$B$2:$B$9,0)), ROW( $B$2:$B$9)-ROW( $B$2)+1)>0))

将其放在公式栏中,然后按 CTRL + SHIFT + ENTER (而不仅仅是ENTER)将其另存为数组公式。 Excel将这些括号{}放在您的公式周围。

然后将其复制下来。它运行良好,请注意,如果在工作簿中使用数千个公式,则数组公式会变得非常慢。

我在链接到“酷伎俩”的here链接后发现了这一点。

如果有效,请告诉我,不要忘记将我的答案标记为已接受。祝你好运!