分享

秒杀FILTER,这才是最牛逼的一对多查找!

 Excel教程平台 2023-04-13 发布于四川

哈喽,大家好~

在日常工作中,会涉及到如下一些操作:

如何在报销流水账中查到某人的所有报销项目和报销金额?

如何从考勤表中查某个员工在某月的迟到情况,包括迟到日期、迟到时长等等。

大家是不是一下就悟了,不就是一对多查找,用FILTER函数啊!

使用公式=FILTER($C$2:$D$40,$B$2:$B$40=F2)

FILTER函数是专门用来筛选数据的,有两个参数,参数1表示需要筛选出的数据区域,本例中是$C$2:$D$40,参数2表示要按什么条件筛选,本例中是$B$2:$B$40=F2,所以公式的意思就是筛选出B列中姓名与F2相同的报销金额和报销说明。

但是这种方法有个弊端,一次只能得到一个姓名的数据,例如要想实现一次匹配多个姓名的时候,就不行了。

今天就来教大家两种方法。

第一种,将查到的结果在单元格中同行显示。

输入公式:

=TEXTJOIN(";",,IF($B$2:$B$40=F2,$D$2:$D$40&":"&$C$2:$C$40,""))

TEXTJOIN是一个合并函数,可以将指定的数据进行合并,并且添加指定的符号进行分隔。

函数有三个参数,第一参数的作用是用来分隔合并内容的符号,本例是用分号进行分隔。第二参数是一个逻辑值,表示是否忽略空白单元格(或空值),省略时表示忽略空值。第三参数最重要了,表示要合并的单元格是哪些,本例中结合IF函数实现了按条件指定要合并的内容。

公式中的IF($B$2:$B$40=F2,$D$2:$D$40&":"&$C$2:$C$40,"")首先判断$B$2:$B$40=F2是否成立,当条件成立时,也就是与指定的姓名相同时,返回$D$2:$D$40&":"&$C$2:$C$40,也就是“报销说明:报销金额”,当条件不成立时返回空值。

因为省略了第二参数,所以忽略空值,最后实现的效果就是当A列姓名与F2相同时,对报销说明、报销金额等数据进行合并,并且以分号隔开多个值。

第二种,将查询结果在单元格中分行显示。

输入公式:

=TEXTJOIN(CHAR(10),,IF($B$2:$B$40=F2,$D$2:$D$40&":"&$C$2:$C$40,"")) 

这种结果看起来更加直观。

与第一种的不同之处在于TEXTJOIN第一参数使用了CHAR(10)作为分隔符。

CHAR函数的作用是返回由代码数字指定的字符,10这个数字对应的是换行符。

需要说明的一点是,如果在公式中使用换行符,必须启用自动换行模式才能看到效果。

以上就是今天的两个实用公式啦。

有的小伙伴可能已经发现了,虽然看起来这是一个查询,但实际是按条件合并单元格数据,所以没有用Vlookup等查询函数,而用的是Textjoin数据合并函数。

你学会了吗?

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多