EXCEL合并同类项,方法之多,信息量炸裂-综合#001
前两天小编为令人烦恼的文本处理写了一个SplitText,解决了拆分的烦恼,今天我们再来盘点一下文本的合并同类型,逆向拆分问题(再谈)
阅读前,提醒一下,本文涉及知识较多,全程原创干货,信息量爆炸,难度较大。请先洗把脸,倒杯茶,静心阅读,如阅读过程中,有头疼、叹气、呆滞等不适,请及时收藏,慢慢理解(我是认真的~),想要全部吃透,需要特别“肝”!
小二,上菜!
上错了,小二,上水果,尤其是“瓜”,多来点!
先说合并,再谈拆分
合并同类项,效果先看一下,是不是很熟悉,这个需求很常见!
先说说函数法吧,昨天发的投票,目前来看大家偏爱函数较多,还没投的可以投一下!
篇幅问题,我们采用简述,需要详解解析,我们另出文章或视频。
函数方法,我们分两种,一种是通用版本,一种是高版本新出的函数!
通用函数法
函数圈子,喜欢叫做“一勺汇”,下次别人说起,你应该知道不是,咱都是见过世面的!
公式:=MID(SUBSTITUTE(PHONETIC(OFFSET($A$1,MATCH(D2,$A$2:$A$16,),,COUNTIF(A:A,D2),2)),D2,"/"),2,99)
公式简述:
OFFSET函数,用于找到每一类的区域,使用PHONETIC直接合并
最后使用SUBSTITUTE,把我们的类别替换成你需要的分隔符,由于首列是类别,会多一个分隔符,MID用于容错次问题
要点提示:
1、PHONETIC只能合并文本,其中如果有数值,需要先转文本,否则失败!
2、每个类别需排序,乱序无果
新函数法
2016及365新出了几个文本函数,其中TextJoin和Cancat算是一个亮点,小编这里未激活对应的版本,不过WPS已同步出现(功能基本一致),这里我们在WPS中给大家演示一下!
公式(数组):=TEXTJOIN("/",TRUE,IF($A$2:$A$16=D2,$B$2:$B$16,""))
公式简述:TEXTJOIN(分隔符,是否忽略是文本,需要连接的字符串)
第三参数,判断是否和合并类别一致,一致返回名称,否则返回空,第二参数忽略空,结果OK
要点提示:基础函数特性,数据可乱序,这点强于通用函数做法
前两天的SplitText,很多小伙伴,就留言PQ不香吗?好像不PQ一下,总感觉缺少点啥,好在小编正好PQ也懂点皮毛,今天我们就让他完整一下吧!
PQ函数法
上Power Query(PQ)演示版本:2016(自带),其他版本:百度安装插件
PQ函数法(PQ不熟的小伙伴,可简单了解跳过)
PQ函数公式:= Table.TransformColumns(Table.Group(源,"类别",{"合并",each [名称]}),{"合并",each Text.Combine(_,"/")})
函数简述:Table.Group按照类别分组,使用Text.Combine可以实现按照指定分隔符合并对应的List文本
要点提示:Table.Group可以全局分组也可以局部分组,所以PQ中我们也可以乱序,这里用的全局分组
当然PQ函数不熟的小伙伴,也可以直接手动操作菜单,也是OK的
PQ技巧操作法
PQ技巧操作(动画演示):
过程中我们使用空格先合并,是为了使用修整功能,删除收尾空格,然后替换你需要的分隔符,如果使用函数Text.Combine则不考虑
VBA法
当然,我们也可以使用VBA处理,也不是什么难事
这里我们大概写一下,本次就不写自定义函数了,有需要,后期我们再补充!
数组+字典的写法
小结:
这样一个常见问题,我们为什么要讲解这么多方法,为了让你面对不同的场景有更多的选择,可能对于合并小伙伴来说,只会其中的一两种,或者有的根本没听说过,但是这会大大扩展你的思路。
最后,古人云:养成习惯,点赞“在看”!See You