问与答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)

相关推荐