excel学习库

excel表格_excel函数公式大全_execl从入门到精通

提取非重复值,重复值只保留一个

一、案例

如下图所示,B2:B10为一份名单,其中部分姓名出现多次。要求提取非重复值,重复出现的姓名只提取一次,结果如D2:D8所示。

二、操作步骤

方法一:删除重复值

选中B1:B10单元格区域,单击【数据】-【删除重复值】,打开【删除重复值】对话框。如下图所示:

由于B1:B10包含标题“姓名”,因此需要勾选【数据包含标题】。

单击【确定】后,即可删除B2:B10中重复出现的姓名,只保留唯一值。

方法二、高级筛选

选中B1:B10中任一单元格,单击【数据】-【高级筛选】,打开【高级筛选】对话框,如下图所示:

“列表区域”指需要进行筛选的区域,本例为B1:B10。本例中将提取的唯一值保存在D列,因此选择【将筛选结果复制到其他位置】,【复制到】选择D1单元格。勾选【选择不重复的记录】。

单击确定后,即可得到B1:B10区域的唯一值。

方法三、INDEX+MATCH+COUNTIF函数法

在D2单元格输入公式

=IFERROR(INDEX($B$2:$B$10,MATCH(0,COUNTIF($D$1:D1,$B$2:$B$10),0)),"")

按Ctrl+Shift+Enter结束公式输入。

公式解析:

(1)INDEX函数用于返回指定行列交叉处单元格的值,例如INDEX($B$2:$B$10,1)返回B2:B10第1行的值,即B2单元格的值“皮卡球”。

本例中

INDEX($B$2:$B$10,MATCH(0,COUNTIF($D$1:D1,$B$2:$B$10),0)),第2个参数为MATCH+COUNTIF函数返回的值。

(3)COUNTIF($D$1:D1,$B$2:$B$10)指B2:B10每个单元格的值在D1:D1中出现的次数。D1单元格的值为“姓名”,因此B2:B10中每个单元格的值在D1:D1出现的次数均为0,此时COUNTIF函数返回的结果为{0;0;0;0;0;0;0;0;0}

(4)MATCH(0,COUNTIF($D$1:D1,$B$2:$B$10),0)即

MATCH(0,{0;0;0;0;0;0;0;0;0},0),表示在COUNTIF函数返回的{0;0;0;0;0;0;0;0;0}中精确查找(MATCH函数第3个参数“查找类型”为0,属于精确查找)“0”值。MATCH函数会查找到第一次出现“0”的位置,返回值为“1”,那么INDEX($B$2:$B$10,1)返回值为“皮卡球”。

(5)当公式向下复制到D3单元格时,COUNTIF($D$1:D1,$B$2:$B$10)变为COUNTIF($D$1:D2,$B$2:$B$10),返回结果为

{1;0;0;0;0;0;0;0;0};MATCH(0,COUNTIF($D$1:D2,$B$2:$B$10),0)即MATCH(0,{1;0;0;0;0;0;0;0;0},0)返回结果为“2”。INDEX($B$2:$B$10,2)返回值为“朱猪侠”。

方法四、LOOKUP+COUNTIF函数法

在D2单元格输入公式

=IFERROR(LOOKUP(2,1/(COUNTIF($D$1:D1,$B$2:$B$10)=0),$B$2:$B$10),"")

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

公式解析:

(1)COUNTIF($D$1:D1,$B$2:$B$10)返回{0;0;0;0;0;0;0;0;0};

COUNTIF($D$1:D1,$B$2:$B$10)=0返回

{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE};

1/(COUNTIF($D$1:D1,$B$2:$B$10)=0)返回{1;1;1;1;1;1;1;1;1}

(2)LOOKUP(2,1/(COUNTIF($D$1:D1,$B$2:$B$10)=0),$B$2:$B$10)即

LOOKUP(2,{1;1;1;1;1;1;1;1;1},$B$2:$B$10),

在{1;1;1;1;1;1;1;1;1}中查找“2”,并返回与查找到的值对应位置的B2:B10的值。由于无法查找到“2”,LOOKUP函数会返回最后一个“1”对应位置的B2:B10的值,即B10单元格的“易水寒”。

(3)当D2单元格的公式向下复制到D3单元格时,1/(COUNTIF($D$1:D2,$B$2:$B$10)=0)返回

{1;1;1;1;1;1;1;1;#DIV/0!}。返回错误值“#DIV/0!”是因为B10单元格的值“易水寒”已经出现在D2单元格。

(4)LOOKUP(2,1/(COUNTIF($D$1:D2,$B$2:$B$10)=0),$B$2:$B$10)即

LOOKUP(2,{1;1;1;1;1;1;1;1; #DIV/0!},$B$2:$B$10)。LOOKUP函数会忽略错误值,并查找到最后一个“1”所在的位置,并返回对应位置的B9单元格的值即“亚瑟”。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接