登陆注册
6480

【Excel函数教程】用TEXTJOIN函数可以实现多对多匹配?

站长网2023-07-29 08:16:091

回复2016获得office2016的下载链接

回复2021获得office2021的安装攻略

(欢迎转发扩散、留言互动和点一下“在看”!)

所谓多对多匹配,就是满足条件的数据不止一条,例如:

每个部门都有很多人,假如指定一个部门匹配成员名称,就是一对多匹配,如果要匹配的部门是多个,那就变成了多对多匹配。

多对多匹配的结果有两种呈现方式,结果在一个单元格或者结果在多个单元格。

首先看第一种情况,结果在一个单元格。

这种情况直接使用公式

=TEXTJOIN("、",,IF($A$2:$A$10=D2,$B$2:$B$10,""))即可

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

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

公式中的IF($A$2:$A$10=D2,$B$2:$B$10,"")首先判断$A$2:$A$10=D2,当条件成立时,也就是与指定的部门相同时,返回$B$2:$B$10对应的姓名,当条件不成立时返回空值。

因为TEXTJOIN省略了第二参数,所以忽略空值,最后实现的效果就是对A列中部门与D2中指定的部门相同时,对姓名进行合并,并且以顿号隔开。

如果是需要将姓名分开在不同的单元格里,在上述公式的基础上增加TEXTSPLIT函数即可。

公式为:

=TEXTSPLIT(TEXTJOIN("、",,IF($A$2:$A$10=D2,$B$2:$B$10,"")),"、")

TEXTSPLIT函数是Excel365新增的一个文本函数,可以按照指定的分隔符对数据进行分隔处理,类似于Excel里的分列功能,但实际上这个函数的功能要远远强于分列,想了解该函数的具体用法可以留言,专门整理一期教程。

以上示例都是比较简单的多对多数据匹配,要匹配的值(姓名)在同一列,下面再来看一个更加复杂的示例,对多列数据进行多对多匹配。

按照报销人的姓名,将报销明细中的报销金额与报销说明进行匹配。

公式为:

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

公式中的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,也就是“报销说明:报销金额”,当条件不成立时返回空值。

以上就是利用TEXTJOIN函数解决多对多匹配的案例分享,你都学会了吗?

如果你有任何关于Excel使用方面的问题

都欢迎来学习群获得帮助

0001
评论列表
共(0)条