分享

提取非重复值,重复值全部剔除,一个也不保留

 初风Excel教学 2022-02-22

一、案例

如下图所示,B2:B10为一份名单,其中部分姓名出现多次。要求提取只出现一次的名字,例如“朱猪侠”出现2次,则不提取该名字。

提取结果如D列所示。

二、计算步骤

在D2单元格输入公式

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

*(COUNTIF($B$2:$B$10,$B$2:$B$10)=1)),$B$2:$B$10),"")

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

公式解析:

(1)COUNTIF($D$1:D1,$B$2:$B$10)指B2:B10中每个单元格的值在$D$1:D1单元格区域出现的次数,返回结果{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}

(2)COUNTIF($B$2:$B$10,$B$2:$B$10)指B2:B10中每个单元格的值在B2:B10单元格区域出现的次数,返回的结果为{1;2;2;1;2;1;1;2;1};COUNTIF($B$2:$B$10,$B$2:$B$10)=1返回的结果为{TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE}。

(3)

COUNTIF($D$1:D1,$B$2:$B$10)=0)*(COUNTIF($B$2:$B$10,$B$2:$B$10)=1返回的结果为{1;0;0;1;0;1;1;0;1}。当B2:B10单元格中的姓名只出现一次且还未被提取到D列时,返回的结果为1;否则返回0。

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

返回值为{1;#DIV/0!;#DIV/0!;1;#DIV/0!;1;1;#DIV/0!;1}。

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

*(COUNTIF($B$2:$B$10,$B$2:$B$10)=1)),$B$2:$B$10)即

LOOKUP(2,{1;#DIV/0!;#DIV/0!;1;#DIV/0!;1;1;#DIV/0!;1},$B$2:$B$10)。LOOKUP函数表示在查找区域

{1;#DIV/0!;#DIV/0!;1;#DIV/0!;1;1;#DIV/0!;1}中查找“2”,并返回B2:B10中与查找到的值同一位置的值。LOOKUP函数会忽视查找区域中的错误值“#DIV/0!”。除了错误值,查找区域中的值是小于查找值“2”的值“1”,LOOKUP函数会查找到最后一个“1”,并返回B2:B10中与最后一个“1”同一位置的B10的值,即“易水寒”。


END


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多