打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
二分钟,把数据合并到一个单元格

工作中总会有一些奇葩的特殊需求,最让人头疼的莫过于将符合条件的多个结果全部放到一个单元格内,这种汇总方式,就是传说中的“一勺烩”啊。

举个例子,请看下图。


A列是某公司部门名称,B列是人员姓名。
要求将相同部门的人员姓名填入F列对应单元格,不同人名之间以逗号间隔。
看到这里,想必有人在心里嘀咕了:
小子啊,你这数据处理不规范啊,怎么能把这么多人名放一个单元格呢?这是违反数据规律,作死吧……
停停!!——
作为表哥表妹大军中的一员,俺更深知表格数据生杀予夺从不在我,而在于那位老是板着脸的……老板。
言归正传,说说这道题的解法:
首先在C2输入公式
=IF(A2=A1,C1&','&B2,B2)
向下复制填充。
F2输入公式:
=LOOKUP(1,0/(E2=$A$2:$A$9),C$2:C$9)
向下复制填充,得到最终结果。
这个解法使用了辅助列的方式。
C列为辅助列,是一个简单的IF函数。
以C2的公式为例:
=IF(A2=A1,C1&','&B2,B2)
先判断A2和A1的值是否相等,如果相等,则返回C1&','&B2,如果不等,则返回B2。
此处A2和A1的值不相等,因而公式返回B2的值'祝洪忠'。
在公式向下复制填充的过程中,该公式得出的结果,将被公式所在单元格下方的下一个公式所使用,于是形成人名累加的效果。
比如C3单元格公式:
=IF(A3=A2,C2&','&B3,B3)
A3和A2的值相等,返回真值C2&','&B3。
C2为上个公式所返回的结果B2(祝洪忠),B3的值是'星光',所以C3最后结果为'祝洪忠,星光'。
辅助列公式输入完成后,在F列使用了一个常用的LOOKUP函数套路,得到最终结果:
=LOOKUP(1,0/(E2=$A$2:$A$9),C$2:C$9)
LOOKUP的这个套路,忽略错误值,总是取得最后一个符合条件的结果,我们可以总结为:
=LOOKUP(1,0/(条件区域=指定条件),要返回的目标区域)
该公式以0/(E2=$A$2:$A$9)构建了一个由0和错误值#DIV/0!组成的内存数组,再用永远大于0的1作为查找值,于是查找出最后一个满足部门等于E2的C列结果,即A列最后一个广告部所对应的C列值:C2。

如果你使用的是Excel2019或是Office365,那就可以使用TEXTJOIN函数了,这个函数在WPS2019中也有哦。在F2单元格输入以下公式,按住SHift+Ctrl不放,按回车,OK了。
=TEXTJOIN(',',1,IF(A$2:A$9=E2,B$2:B$9,''))
TEXTJOIN函数的用法为:
=TEXTJOIN(间隔符号,要不要忽略空单元格,要合并的内容)
公式中要合并的内容为: 
IF(A$2:A$9=E2,B$2:B$9,'')
也就是如果A$2:A$9等于E2,就返回B$2:B$9对应的内容,否则返回空文本'',结果是一个传说中的内存数组:
{'祝洪忠';'星光';'';'';'';'';'';''}
TEXTJOIN函数对IF函数得到的内存数组进行合并,第一参数指定使用间隔符号为逗号,第二参数使用1,表示忽略内存数组中的空文本。

今天的练习文件在此,你也试试吧:
http://caiyun.feixin.10086.cn/dl/1B5CvuROY1uKT
图文作者:看见星光
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
按指定次数重复内容的套路合集
伙伴们!带有合并单元格的数据,你是怎么条件求和的?
VLOOKUP函数应该怎么用,看完你就明白了~
我才是Excel的查找引用之王,甩Vlookup几条街!
9个LOOKUP函数经典用法,学会秒变EXCEL达人!
一篇文章带你全面掌握Excel中的各种数据查询知识与技巧
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服