难倒90%的人,根据筛选内容LOOKUP对应值,居然如此简单!
学员的问题,有无公式可以实现,将筛选状态下的B列的名称,连接合并到B1个单元格,并随着筛选状态的变化而变化?
对筛选的内容求和、计数、添加序号都是用SUBTOTAL函数,这里也照样用这个函数。
先跟卢子复习一下,SUBTOTAL函数在筛选情况下获得连续序号的方法。103是计数,最后面*1是为了防止最后一行被认为总计从而导致筛选出错。
=SUBTOTAL(103,A$3:A3)*1
各数字对应表,用得最多的就是103计数,109求和。
筛选以后,序号就都是连续的。
根据这个特点,现在将辅助列的公式略作改动,原来是区域,现在变成单元格。现在可见单元格都是1。
=SUBTOTAL(103,A3)*1
最终公式就出来了,这是数组公式,需要按Ctrl+Shift+Enter三键结束。
=TEXTJOIN(",",1,IF(C3:C12=1,B3:B12,""))
IF函数部分的作用,让C列为1的返回B列的对应值,否则显示空白。TEXTJOIN函数就将结果用分隔符号合并起来。
有了这个套路,现在要根据筛选内容查找对应值,就不是问题了。只需增加一个条件,判断类别是否一样就行。
=TEXTJOIN(",",1,IF(($C$3:$C$12=1)*($A$3:$A$12=A22),$B$3:$B$12,""))
语法总结,需要按Ctrl+Shift+Enter三键结束。
=TEXTJOIN("分隔符号",1,IF((辅助列=1)*(查找区域=查找值),返回区域,""))
如果你的电脑没有这个函数,没关系,送你一个。详见下面文章:
平常我比较喜欢用辅助列,这样会使问题变得更加简单。
如果是你,遇到这种筛选状态查找对应值,你会怎么做?
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)
赞 (0)