摘要:题目要求要求将上图左侧的数据,根据部门将姓名合并在一个单元格,用顿号隔开。一、使用TEXTJOIN函数如果你的Excel是365或者2019(WPS也有这个函数...
题目要求
要求将上图左侧的数据,根据部门将姓名合并在一个单元格,用顿号隔开。
一、使用TEXTJOIN函数
如果你的Excel是365或者2019(WPS也有这个函数),那么就可以用Textjoin函数来解决。
先把部门的不重复项提取出来,操作步骤如上图。
E2单元格输入公式:
=TEXTJOIN("、",TRUE,IF(A:A=D2,B:B,""))
这是一个数组公式,需要按三键结束(ctrl shift enter),
公式的意思就是对于A列中部门等于计划部的,返回姓名,否则就返回空,然后用Textjoin函数,把返回的这些姓名和空值合并起来,Textjoin第一参数表示合并时的分隔符,第二参数表示忽略待合并值中的空值,第三参数就是需要合并的内容。
二、使用Power Query解决
选中数据,点击数据选项卡下面的【自表格/区域】,在弹出的窗口中勾选【包含标题】,然后点击【确定】,将数据加载到Power Query编辑器。
选中姓名,点击【分组依据】,在弹出的窗口中填写新列名,【操作改为求和】,【柱里面选择姓名】(这里的柱应该是翻译错误,COLUMN翻译过来应该是列)。
然后把里面的List.Sum([姓名])改为Text.Combine([姓名],"、"),结果就正确的显示出来了。最后把这个加载到工作表即可。
三、使用Power Pivot的CONCATENATEX来解决
如上图将数据加载进数据模型
选中下面的格子,在上面的编辑栏输入图中的公式,然后做透视表即可。
把部门拉到行,人员拉到值,结果就出来了。
不管什么方法,能解决问题就是好的,建议第一种和第二种必须要掌握,第三种了解一下就好。
如果使用TEXTJOIN函数做,做完记得复制粘贴为数值,否则发给别人,没有这个函数的可能会出错。
Power Query建议最好学一学,简单的面板操作,可以解决很多需要VBA才可以解决的问题。