举个例子,请看下图。
【Excel】拼接多个值放到一个单元格 - 图1

方法一:辅助列+IF+Lookup

C2单元格=IF(A2=A1,C1&”,”&B2,B2)
F2单元格=LOOKUP(1,0/(E2=$A【Excel】拼接多个值放到一个单元格 - 图2A$9),C$2:C$9)
【Excel】拼接多个值放到一个单元格 - 图3【Excel】拼接多个值放到一个单元格 - 图4
LOOKUP 的这个套路,忽略错误值,总是取得最后一个符合条件的结果,我们可以总结为:
=LOOKUP(1,0/(条件区域 = 指定条件), 要返回的目标区域)
该公式以 0/(E2=A【Excel】拼接多个值放到一个单元格 - 图5A$9) 构建了一个由 0 和错误值 #DIV/0! 组成的内存数组,再用永远大于 0 的 1 作为查找值,于是查找出最后一个满足部门等于 E2 的 C 列结果,即 A 列最后一个广告部所对应的 C 列值:C2。

方法二:TextJoin(Excel2019或Office365或WPS2019特有)

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

方法三:PowerQuery

分组汇总使用M函数拼接,后续补充