问与答127:如何列出并统计列表中的唯一值?
excelperfect
Q:在一列中包含有很多数据,我想使用公式来列出并统计其唯一值,我不想使用数据透视表,下图1所示为示例数据。
图1
使用公式,在列C中列出其唯一值,列D中列出这些值相应出现的数量。
A:使用数组公式,如下图2所示。
图2
在单元格C2中输入数组公式:
=INDEX($A$2:$A$25,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$25),0))
公式的技巧在于:
MATCH(0,COUNTIF($C$1:C1,$A$2:$A$25),0)
其中,使用:
COUNTIF($C$1:C1,$A$2:$A$25)
计算第二个区域$A$2:$A$25中,每个单元格中的值在第一个区域中出现的次数,要么是1(表明出现了),要么是0(表明没有出现,即没有这个值),而这正是我们查找的唯一值。然后,使用MATCH执行精确匹配查找,所得到的位置也就是该值在区域$A$2:$A$25中的位置。再将结果传递给INDEX函数,从而获取值。
在单元格D2中输入公式:
=COUNTIF($A$2:$A$25,C2)
统计获取的唯一值在原列表中出现的次数,如下图3所示。
图3
最后,向下复制公式得到最终结果,如下图4所示。
图4
对于上图2中的数组公式,当向下复制时,如果唯一值获取完了,会出现#N/A错误,对于Excel 2007及以上版本,可以使用下面的数组公式:
=IFERROR(INDEX($A$2:$A$25,MATCH(0,COUNTIF($C$1:C3,$A$2:$A$25),0)),'')
赞 (0)