去淘宝代工要200元的题目,用函数轻松搞定!

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天在其他群里看到有人问了一个动态筛选的问题。其实在这之前,他已经去淘宝上问过了,人家要价200元。下面是他自己发的截图。
那这是个什么题目呢?很难吗?下面是我按照他的截图模拟的部分数据。左表是数据源,要求是删除等级只有S的姓名,保留等级是A或等级既有A又有S的姓名。其实就是一个筛选的问题。
右表是我写的结果,方便大家对照。其中左表标绿的就是要删除的。
乍一看,感觉有点难度。其实找到规律就很简单了。添加一个辅助列,在D4单元格输入公式=COUNTIFS(A$4:A$20,A4,C$4:C$20,"A"),向下填充,然后把大于0的筛选出来就可以了。

因为要保留的是等级为A或等级既有A又有S的姓名,所以判断姓名是否有等级A就可以了。这里用countifs函数统计,姓名中没有等级A的,只能是等级S的,返回的结果为0。

由于是动态筛选,不是手工筛选。所以还需用函数进一步返回结果,其实就是万金油的套路了。在F4单元格输入下面的公式,按ctrl+shift+enter,向右向下填充。

=INDEX(A:A,SMALL(IF($D$4:$D$20,ROW($4:$20),4^8),ROW(A1)))&""

上面的公式是数组公式,当数据量很大时,会很卡。工作中还是效率为主,所以尽量少用数组公式,多用辅助列。

而且上面已经用了辅助列了,再用数组公式就不划算了。用辅助列的目的有两个,一个是降低难度,另一个是提高效率。

可以在辅助列中再处理一步,在D4单元格输入公式=IF(COUNTIFS(A$4:A$20,A4,C$4:C$20,"A"),ROW()),向下填充。让大于0的返回对应的行号,等于0的返回false。
接下来,在F4单元格输入下面的公式,右拉下拉填充,完成。

=IFERROR(INDEX(A:A,SMALL($D$4:$D$20,ROW(A1))),"")

就像一开始的题主说的那样:“解决一个问题就要200,那做完一个表格不得上万。”对于很多需要做表格的小伙伴来说,自己的工资本来就不高,去淘宝代工又觉得很贵,所以最好的方法就是自己学习。

链接:

https://pan.baidu.com/s/1EkGNKYGIP4hH3KO2BGqNJQ

提取码:1krx
(0)

相关推荐