与 30万 粉丝一起学Excel
VIP学员的问题,要对筛选的内容进行求和、查找对应值。金额会出现2种情况,一种是纯数字,一种是包含错误值。
正常情况下,根据筛选的内容求和用SUBTOTAL,参数一是9代表求和,不过当金额包含错误值的时候会出错。

=SUBTOTAL(9,C3:C12)

这里学习一个新函数AGGREGATE,作用跟SUBTOTAL一样,不过更加强大,可以忽略错误值。一共有三个参数,重点看第二个参数:指定忽略行为,7为忽略隐藏行和错误值。

总共有19种用法,常用就上面几个,其他的就不截图说明。

添加第二参数为7就行。

=AGGREGATE(9,7,C3:C12)

比如现在筛选城市为广州,要在B列显示广州,在A列显示9月、10月。
这种很难直接查找,通常都是借助辅助列,判断内容是否被筛选了,可见单元格就返回1,再利用数字1进行间接查找。先取消筛选,输入公式。

=AGGREGATE(3,7,B3)*1

难倒80%的人,根据筛选内容SUM、LOOKUP对应值,居然如此简单!
现在筛选广州,只有一个对应值,用LOOKUP查找。

=LOOKUP(1,0/(E3:E12=1),B3:B12)

将所有符合条件的合并到一个单元格用TEXTJOIN。

=TEXTJOIN(“、”,1,IF(E3:E12=1,A3:A12,””))

IF函数部分的作用,让E列为1的返回A列的对应值,否则显示空白。TEXTJOIN函数就将结果用分隔符号合并起来。

语法总结,低版本需要按Ctrl+Shift+Enter三键结束。

=TEXTJOIN(“分隔符号”,1,IF(辅助列=1,返回区域,””))
最后,卢子再进行拓展说明,假如筛选出来的内容出现重复值,需要获取唯一值,又该如何改进?
在没有筛选的情况下,用UNIQUE可以获取唯一值。

=UNIQUE(A4:A6)

其实,在筛选情况下,根据IF的结果,再套UNIQUE同样可以获取唯一值。

=TEXTJOIN(“、”,1,UNIQUE(IF(E3:E12=1,A3:A12,””)))

因此,B列的公式也可以改成:

=TEXTJOIN(“、”,1,UNIQUE(IF(E3:E12=1,B3:B12,””)))

没有最好的表格,只有不断完善改进的表格,只要肯花心思,表格将越来越完美。
关于筛选,你还遇到过什么问题?
请把「Excel不加班」推荐给你的朋友