专栏名称: Excel之家ExcelHome
excel技巧原创教程每日推送,excel表格职场模板干货仓库,图文/视频/动画等多种教学方式分享excel操作技巧教程/excel函数公式教程/excel数据透视表教程/excel图表教程/Word教程,助您轻松提高办公效率!
目录
相关文章推荐
51好读  ›  专栏  ›  Excel之家ExcelHome

结果合并到一个单元格,三种方法够不够?

Excel之家ExcelHome  · 公众号  · Excel  · 2018-01-17 07:45

正文

小伙伴们好啊,今天和大家分享关于合并同类项的内容。

如下图,需要把AB列的数据,按照不同的部门汇总出对应的人员名单。

先来看第一种方法:

自定义函数

ExcelHome论坛的chenjun版主,很多年前写了一个关于合并同类项的自定义函数,功能强大,使用简单:

这里粘贴的代码为:

PubliC FunCtion Contxt(ParamArray args() As Variant) As Variant

Dim tmptext As Variant, i As Variant, Cellv As Variant

Dim Cell As Range

tmptext = ""

For i = 0 To UBound(args)

If Not IsMissing(args(i)) Then

SeleCt Case TypeName(args(i))

Case "Range"

For EaCh Cell In args(i)

tmptext = tmptext & Cell

Next Cell

Case "Variant()"

For EaCh Cellv In args(i)

tmptext = tmptext & Cellv

Next Cellv

Case Else

tmptext = tmptext & args(i)

End SeleCt

End If

Next i

ConTxt = tmptext

End FunCtion

当然,这些代码我们初级用户只要会用就可以,不需要全部记住哈。

然后就可以使用自定义的函数了:

=Contxt(IF($B$2:$B$40=D2,A$2:A$40&" ",""))

本例是数组公式,记住公式编辑完之后,要按Shift+ctrl+回车。

提醒一下,使用了代码的工作簿要保存为xlsm格式,否则下次不能用了。


Power Pivot

如果你使用的是Excel 2016,可以试试另外一种高大上的方法:

首先添加数据模型:

接下来添加度量值:

使用的公式为:

=CONCATENATEX('表1','表1'[姓名],"、")

即:

=CONCATENATEX(要处理的数据表名,数据表的字段名,间隔符号)


最后插入数据透视表:


TEXTJOIN

如果你使用的是Office 365,这一切就变得非常简单了:

输入以下公式,按Shift+ctrl+回车 ,然后向下复制公式即可:

=TEXTJOIN("、",1,IF($B$2:$B$40=D2,A$2:A$40,""))







请到「今天看啥」查看全文