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