打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel189 | 在姓名与成绩中剔除指定姓名与成绩(进阶篇)
问题来源

书接上回,开启进阶!

还是用昨天同一组示例数据,稍微变一下表现形式:

只不过,今天不用辅助列了,直接用一个公式,剔除指定姓名,写出保留姓名与成绩。

公式实现

在F2单元格输入公式:

=IFERROR(INDEX(A$2:A$10,SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),"",ROW($1:$9)),ROW(A1))),""),Ctrl+Shift+Enter结束公式输入。

公式向下、向右填充,会得到剔除指定姓名以后,保留的姓名及对应成绩。

如图:

公式解析

COUNTIF($D$2:$D$6,$A$2:$A$10)

  • 从D2:D5指定的要剔除的姓名区域,依次查找A1:A9所有姓名,查得到的返回1,查不到的返回0。所以此部分公式返回由1与0组成的数组:

{0;1;1;0;1;1;0;1;0 }

ROW($1:$9)

  • 返回由1—9组成的数组:

{1;2;3;4;5;6;7;8;9}

IF(COUNTIF($D$2:$D$6,$A$2:$A$10),"",ROW($1:$9))

  • 此部分公式原理用下图解释:

  • 所以,本部分IF函数的返回值是数组:

{1;"";"";4;"";"";7;"";9}

SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),"",ROW($1:$9)),ROW(A1))

  • ROW(A1)的返回值是1,所以,此部分是返回数组{1;"";"";4;"";"";7;"";9}的最小值,即1;公式每往下填充一行,ROW(A1)变为ROW(A2),ROW(A3),ROW(A4)……,此部分SMALL公式就会返回数组{1;"";"";4;"";"";7;"";9}的第2、3、4……小的数值,即4,7,9……;

INDEX(A$2:A$10,SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),"",ROW($1:$9)),ROW(A1)))

  • 公式在F2中,即是返回A2:A10区域中第1位的数据A1;公式往下填充,即返回A2:A10区域中第4、7、9位的数据A4、A7、A9,即得到了剔除指定姓名以后保留的姓名;

IFERROR(INDEX(A$2:A$10,SMALL(IF(COUNTIF($D$2:$D$6,$A$2:$A$10),"",ROW($1:$9)),ROW(A1))),"")

  • 用IFERROR,如果查找到结果就返回值,如果查不到,出现错误,则返回空值。

保留成绩的计算:

  • 因为公式中的A$2:A$10,使用的混合引用,A列没有锁定,所以,向右填充,会自从变为B$2:B$10,也就是保留的B列的成绩。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
每日Excel分享(函数)| 这个厉害了!且看函数公式如何进行数据筛选
从两列中提取相同或不相同数据的数组公式
excel提取技巧:如何不排序提取排名数据
集齐Vlookup函数 Lookup函数的全部用法
Excel中生成随机数有两个函数,分别为Rand函数和RandBetween函数
Excel随机数产生函数Rand与RandBetween的用法,含生成固定的、不重复的或指定范围的随机数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服