怎么将不同公司对应的产品,合并起来,并用顿号连接?
整理出来的表格效果如下图所示:
很明显,其中涉及到的知识点是:去除重复值,合并同类项。
下面我们就来看一下这位同学的需求,进一步的了解合并同类项的做法~
这位同学给了我一张表(左表)让我统计一下人员购课情况,所以现在我需要把表格转换为右表的形式~
这个问题,本质上就是合并同类项。
本文将介绍合并同类项的三种方法:
❶Office2019以及以上版本——Textjoin连接法。
❷Office2013以及以上版本——Powerquery(PQ)分组依据功能。
(Office2013版本的小伙伴可以在后台回复【插件】自行安装,Office2016以及以上版本的Excel自带PQ插件)。
❸适合Office2007及以上、WPS2016及以上版本——插件法。
01
方法一:Textjoin函数法
Textjion函数适用的版本:WPS2019、Office2019、Office365。
Textjion函数的做法如下:
公式如下:
=TEXTJOIN("/",TRUE,IF(E2=$A$2:$A$14,$B$2:$B$14,""))
很明显,我们要先用IF函数把同类项找出来,再用Textjion函数进行连接。
IF函数我们都很熟悉啦,简单介绍一下Textjoin函数~
Textjoin函数有三个参数。
=Textjoin(分隔符,是否忽略空值,数组/单元格区域)
如果要忽略空值就填TRUE,不忽略空值就填FALSE。
打个比方:
=Textjoin("-",TRUE,{"秋";"";"叶";"Excel"})
结果就等于:秋-叶-Excel
第二参数为TRUE,所以数组中的空值被忽略了,后面就直接用分隔符把秋,叶,Excel连接了。
小贴士:
❶该公式是一个数组公式,返回时需要按住三键【Ctrl+Shift+Enter】来执行数组运算。
❷公式的运算原理是:
通过姓名与姓名列之间进行逻辑判断,返回一个逻辑值,最后借助IF函数返回True相对应的值(购买的课程)。
这时候形成一个由空值与购课情况结合的数组,后面就用Textjion函数进行连接。
由于Textjoin函数可以忽略空值,所以对应的购买的课程就可以直接用分隔符连接起来啦~
了解了基本的函数做法后,下面我们就来介绍一下PQ用法。
02
方法二:PQ分组依据功能
第一步:将表格导入PQ编辑器中。
选中表格-点击【自表格/区域】。
勾选表包含标题-点击确定。
此时就进入PQ编辑器里啦~
第二步:
选择姓名列-点击【开始】选项卡下的【分组依据】;
操作为【求和】-柱为【购买的课程】,点击确定。
此时出现错误没关系,后面我们就来改公式。
第三步:
更改函数公式,将List.Sum改为Text.Combine并添加分隔符参数。
第四步:关闭并上载,此时就完成啦~
看完了上面的操作,有小伙伴或许会疑问了,究竟什么是分组依据?
这里为什么要用Text.Combine函数?
为何出现错误值?
下面我们就来简单解释一下吧~
何为分组依据?
分组依据的功能,跟工作表中的合并计算有点类似,
也有点像Excel里面的数据透视表,对指定字段数据进行统计,它可以指定多个字段作为条件,也可以同时统计多个结果。
分组依据可以支持的统计方式包括:求和,平均值、最小值,非重复行计数和所有行。
为什么要用Text.Combine函数?
分组依据没有合并文本的功能,所以我们需要用到Text.Combine函数。
Text,是文本的意思,Combine,是结合的意思。
这个函数就是用来文本连接的!是不是感觉有点像上面说的Textjion函数~
Text,Combie有两个参数:
=Text,Combie(文本序列,分隔符)
为何出现错误值?
分组之后的计数出现错误值的原因是:
我们的购买的课程列是一个文本,直接对文本进行求和,所以会出现错误值。
不过没关系,我们可以直接把List.Sum求和改为文本连接Text.Combine函数,后面再添加分隔符就好啦~
使用PQ法的好处在于,可以实时更新数据!
接下来,我们来看看最简单的插件做法吧~
03
方法三:插件法
这里我们用到的插件是E灵,用到的功能是数据分类合并。
老规矩,可以在后台回复【插件】即可获取下载。
下面就通过一个动图来看看具体操作~
数据合并功能只能用顿号连接,所以不是特别灵活,不过它操作简单,也不失为一个好的方法。
好啦~三种方法进行合并同类项你是否get到了呢~
总结一下,本文介绍三种合并同类项的方法:
❶Textjoin和If函数连接同类项——Textjoin函数可以忽略空值,并能够用分隔符连接。
❷PQ分组依据——配合Text.Combine函数达到连接同类项的效果。
❸E灵插件数据合并功能——虽然只能用顿号分隔,不过操作简单~