电商:超简单!相同编号的名称,合并到一个单元格里
今日目标:
学会合并同类别数据到同一单元格
前两天一个电商的同学提问。
怎么根据商品的「号码」,把相同号码的「名字」,都合并到一个单元格里去?
就是从左边变成右边的样子。
1- 问题描述
秋叶的学习群里,大家学习积极性特别强,同学互帮互助,没一会,就有人给出解决方法了。
=VLOOKUP(F3&"-"&1,$B$2:$D$58,3,0)&IFERROR(VLOOKUP(F3&"-"&2,$B$2:$D$58,3,0),"")&IFERROR(VLOOKUP(F3&"-"&3,$B$2:$D$58,3,0),"")
作为学习群里的老师,我每天的工作就是,爬楼,挨个感谢、夸奖答疑的同学。
等等!
不对啊!这么长的函数谁能看的懂啊?
作为老师,我肯定、一定、必须要有更简单的方法,看下面。
相同的结果,我的公式更加简单。
=TEXTJOIN(",",1,FILTER($C$2:$C$58,$B$2:$B$58=E3))温馨提示,这里的公式,只有Office365才能用。
我们看一下具体的解题思路。
2- 解决方法
这个问题,只要梳理清楚了解题的思路,其实并不难,主要分为3个部分。
1- 去除重复的号码
2- 根据号码筛选名字
3- 把统一号码的名字合并起来
UNIQUE函数,去除重复的号码
这一步,就是去除原始「号码」中的重复值,方便后面筛选和合并。
传统公式非常复杂,使用Office365新增的UNIQUE函数,分分钟搞定。
对应的公式如下:
=UNIQUE(B2:B58)
FILTER函数,根据号码筛选名字
这一步是根据「号码」筛选对应的商品名字。
这个复杂的需求,借助Office365中的Filter函数,实现起来也非常的简单。
对应的公式如下:
=FILTER($C$2:$C$58,$B$2:$B$58=E3)
TEXTJOIN函数,合并名字
FILTER筛选出来的「名字」,依然是分散在不同的单元格。
要把他们合并起来,放在同一个单元格里。
这个不难,在FILTER外面在套上一个TEXTJOIN函数就可以了。
公式如下:
=TEXTJOIN(",",1,FILTER($C$2:$C$58,$B$2:$B$58=E5))
TEXTJOIN函数的作用,就是用分隔符,把多个单元格的数值,合并在一个单元格中。它有几个参数:
- 参数1。要使用的分隔符是什么,比如这里的逗号。
- 参数2。是否忽略空白单元格,1代表忽略。
- 参数3。要合并的单元格或区域1
- 参数4。要合并的单元格或区域2
- 。。。
用TEXTJOIN合并起来之后,就得到了最后的结果。
总结
写公式呢,其实就是把我们的需求,翻译成Excel能看懂的函数公式,然后按照公式去执行。
所以,写公式之前,梳理清楚思路是非常重要的。
本节课,涉及到的几个函数,解决了之前实现不了的去重、筛选需求。点击下面的图表,了解更多的内容。
UNIQUE函数,参考这篇文章
FILTER函数,参考这篇文章
另外,使=用Power Query也可以一键合并同类文本,参考这篇文章
我是拉小登,一个会设计表格的Excel老师