分享

重复出现的文字,提取唯一值,并按重复出现的次数,从多到少排序

 初风Excel教学 2022-02-22

一、案例

如下图所示,A2:A10为一系列景点名称,各景点名称重复出现。要求提取A2:A10的唯一值,并按各景点重复出现的次数,从多到少排列,效果如C2:D4所示。

二、计算步骤

1、在C2单元格输入公式

=IFERROR(INDEX($A$2:$A$10,MATCH(LARGE(IF(COUNTIF($C$1:C1,$A$2:$A$10)=0,COUNTIF($A$2:$A$10,$A$2:$A$10),""),1),COUNTIF($A$2:$A$10,$A$2:$A$10)*(COUNTIF($C$1:C1,$A$2:$A$10)=0),0)),"")

按Ctrl+Shift+Enter结束公式输入,拖动填充柄向下复制公式,直至出现空值。

公式解析:

(1)IFERROR函数用于屏蔽错误值。当已提取出A2:A10单元格的所有唯一值后,返回空值。

(2)INDEX函数可以返回指定行列交叉处单元格的值,其语法为INDEX(array,row_num,[col_num])。本例中,INDEX函数的array参数为A2:A10;row_num参数为MATCH+LARGE+IF+COUNTIF函数组合返回的值。

(3)MATCH函数返回特定值在单元格区域中的相对位置,语法为MATCH(lookup_value,lookup_array,[match_type])。

本例中lookup_value参数为

LARGE(IF(COUNTIF($C$1:C1,$A$2:$A$10)=0,COUNTIF($A$2:$A$10,$A$2:$A$10),""),1)

lookup_array参数为

COUNTIF($A$2:$A$10,$A$2:$A$10)*(COUNTIF($C$1:C1,$A$2: $A$10)=0)

match_type参数为0,指精确匹配。

(4)LARGE函数用于返回数组中的第k个最大值,语法为LARGE(array,k)。本例中

LARGE(IF(COUNTIF($C$1:C1,$A$2:$A$10)=0,COUNTIF($A$2:$A$10,$A$2:$A$10),""),1)指返回IF+COUNTIF函数生成的数组中的最大值。

(5)COUNTIF($A$2:$A$10,$A$2:$A$10)返回A2:A10

各单元格的文本在A2:A10出现的次数,返回结果为{4;3;2;4;4;3;4;2;3};COUNTIF($C$1:C1,$A$2:$A$10)返回A2:A10各单元格的文本在C1:C1出现的次数,返回结果为{0;0;0;0;0;0;0;0;0}

(6)

IF(COUNTIF($C$1:C1,$A$2:$A$10)=0,COUNTIF($A$2:$A$10,$A$2:$A$10),"")返回结果为{4;3;2;4;4;3;4;2;3}

(7)

COUNTIF($A$2:$A$10,$A$2:$A$10)*(COUNTIF($C$1:C1,$A$2: $A$10)=0)返回结果为{4;3;2;4;4;3;4;2;3}

2、在D2单元格输入公式

=COUNTIF($A$2:$A$10,C2)

拖动填充柄向下复制公式。

COUNTIF($A$2:$A$10,C2)用于计算C2单元格的文本(“羊羊村”)在A2:A10单元格区域出现的次数。


END


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多