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
现在筛选广州,只有一个对应值,用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,””)))
=TEXTJOIN(“、”,1,UNIQUE(IF(E3:E12=1,B3:B12,””)))
没有最好的表格,只有不断完善改进的表格,只要肯花心思,表格将越来越完美。
|