原标题:二分钟把数据合并到┅个单元格
工作中总会有一些奇葩的特殊需求,最让人头疼的莫过于将符合条件的多个结果全部放到一个单元格内这种汇总方式,就是傳说中的“一勺烩”啊
A列是某公司部门名称,B列是人员姓名
要求将相同部门的人员姓名填入F列对应单元格,不同人名之间以逗号间隔
看到这里,想必有人在心里嘀咕了:
小子啊你这数据处理不规范啊,怎么能把这么多人名放一个单元格呢这是违反数据规律,作死吧……
作为表哥表妹大军中的一员俺更深知表格数据生杀予夺从不在我,而在于那位老是板着脸的……老板
言归正传,说说这道题的解法:
向下复制填充得到最终结果。
这个解法使用了辅助列的方式
C列为辅助列,是一个简单的IF函数
先判断A2和A1的值是否相等,如果相等则返回C1&","&B2,如果不等则返回B2。
此处A2和A1的值不相等因而公式返回B2的值"祝洪忠"。
在公式向下复制填充的过程中该公式得出的结果,将被公式所在单元格下方的下一个公式所使用于是形成人名累加的效果。
C2为上个公式所返回的结果B2(祝洪忠)B3的值是"星光",所以C3最后结果为"祝洪忠,星光"
辅助列公式输入完成后,在F列使用了一个常用的LOOKUP函数套路得到最终结果:
LOOKUP的这个套路,忽略错误值总是取得最后一個符合条件的结果,我们可以总结为:
该公式以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(间隔符号,要不要忽略空单元格,要合并的内容)
公式中要合并的内容为:
也就是如果 A$2:A$9等于E2,就返回 B$2:B$9对应的内容否则返回空文本"",结果是一个传说中的内存数组:
TEXTJOIN函数对IF函数得到的内存数组进行合并第一参数指定使用间隔符号为逗号,第二参数使用1表示忽略内存数组中的空文本。