前两天在工作中遇到一个小需求,如果将一列相同内容的数据合并到一个单元格?
如下图所示,如将等级一样的城市合并到一个单元格,城市之间用逗号分隔开来,如何实现?
![7315180a17a15dadeef7ab2858bbf2fa.png](https://img-blog.csdnimg.cn/img_convert/7315180a17a15dadeef7ab2858bbf2fa.png)
两个解决方法,分享给大家!
方法一 IF函数法
在辅助列C2单元格内输入公式:
=IF(A2=A3,B2&","&C3,B2)
如果等级列A2等于A3返回B2连接一个逗号在连接C3单元格,如果两者不相等,则返回B2单元格;
公式下拉,可以发现每个等级第一行数据(标黄行)就是我们需要的数据,接下来就是如何提取每个等级第一行的数据。
![9b8d9d124fb09bb2d12f0fd1607c6a81.gif](https://img-blog.csdnimg.cn/img_convert/9b8d9d124fb09bb2d12f0fd1607c6a81.gif)
在D列输入公式:
=IF(A2=A1,D1+1,1)
公式下来,可以发现已经将等级一样的数据做了个排序,排名第一的即为需求数据,点击数据筛选,选取为1的数据即为最终的结果。
![28531fc03c85b4d8b12ee72fac9f80f0.gif](https://img-blog.csdnimg.cn/img_convert/28531fc03c85b4d8b12ee72fac9f80f0.gif)
上面通过两个IF函数的方法完成的数据的提取,虽有点小麻烦,胜在两个IF函数通俗易懂,不是特别复杂,容易上手,下面的一个方法公式略长,但可一步到位。
方法二 连接函数PHONETIC法
首先将等级列删除重复值,放置于D列,在E列输入公式(左右滑动查看完整公式):
=SUBSTITUTE(SUBSTITUTE(PHONETIC(OFFSET(A$1,MATCH(D2,A:A,)-1,,COUNTIF(A:A,D2),2)),D2,","),",",,1)
公式下来,即可完成数据提取;
其中【OFFSET(A$1,MATCH(D2,A:A,)-1,,COUNTIF(A:A,D2),2)】返回所有一线城市的等级与城市区域,然后利用PHONETIC函数将此区域合并,得到内容【一线城市北京一线城市上海一线城市广州一线城市深圳】;
再利用SUBSTITUTE函数将"一线城市"这个词替换成逗号,再利用一次SUBSTITUTE函数将第一个逗号去掉(替换为空),最终得到需求的结果。
![9e379caa53ad19a10348c568ddd2d197.png](https://img-blog.csdnimg.cn/img_convert/9e379caa53ad19a10348c568ddd2d197.png)
小结
两种方法都可以获得正确的内容,不同之处在于第一种方法逻辑简单,但需多操作一步;第二种方法一步到位,但公式较为复杂,小伙伴觉得呢?
觉得有用,欢迎关注我,定期分享数据小技巧。
![c91aef798fead20dd1a9b26c7f13a110.png](https://img-blog.csdnimg.cn/img_convert/c91aef798fead20dd1a9b26c7f13a110.png)