前两天在工作中遇到一个小需求,如果将一列相同内容的数据合并到一个单元格?
如下图所示,如将等级一样的城市合并到一个单元格,城市之间用逗号分隔开来,如何实现?
![a28e38f9f69414560be51345126c9050.png](https://i-blog.csdnimg.cn/blog_migrate/8a016fdc706171c6336141dff943ae85.jpeg)
两个解决方法,分享给大家!
方法一 IF函数法
在辅助列C2单元格内输入公式:
=IF(A2=A3,B2&","&C3,B2)
如果等级列A2等于A3返回B2连接一个逗号在连接C3单元格,如果两者不相等,则返回B2单元格;
公式下拉,可以发现每个等级第一行数据(标黄行)就是我们需要的数据,接下来就是如何提取每个等级第一行的数据。
![7dbc42f1316d83cbffe5a53e23ad2303.gif](https://i-blog.csdnimg.cn/blog_migrate/aa751301d08f73588f1fef455cd64830.gif)
在D列输入公式:
=IF(A2=A1,D1+1,1)
公式下来,可以发现已经将等级一样的数据做了个排序,排名第一的即为需求数据,点击数据筛选,选取为1的数据即为最终的结果。
![2844441043c75b5cb6e68fb000c3e398.gif](https://i-blog.csdnimg.cn/blog_migrate/71a1955ba11800efb47b867009ff8d79.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函数将第一个逗号去掉(替换为空),最终得到需求的结果。
![a72038622e6c1ae7193a65f953f314c1.png](https://i-blog.csdnimg.cn/blog_migrate/ddc1613f7d70bbddf47c6fa7992e3ac7.jpeg)
小结
两种方法都可以获得正确的内容,不同之处在于第一种方法逻辑简单,但需多操作一步;第二种方法一步到位,但公式较为复杂,小伙伴觉得呢?
觉得有用,欢迎关注我,定期分享数据小技巧。
![bb29bdd2925d250940214c6f51ad4483.png](https://i-blog.csdnimg.cn/blog_migrate/aa955517b112989f3f77c7b41a05fc3f.jpeg)