乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel中合并单元格-结果合并到一个单元格,三种方法够不够?

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

作者:乔山办公网日期:

返回目录:excel表格制作

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


如下图,需要把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,""))


TEXTJOIN函数的用法为:


=TEXTJOIN(间隔字符,是否忽略空单元格,要合并的内容)


公式中要合并的内容为:


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


也就是如果$B$2:$B$40等于D2,就返回A$2:A$40对应的内容,否则返回空文本""。


TEXTJOIN函数对IF函数得到的内存数组进行合并,并且使用顿号“、”作为不同姓名之间的间隔。


三种方法,各有特点,你更喜欢哪一种呢?


图文制作:祝洪忠


相关阅读

关键词不能为空
极力推荐
  • excel教学-Excel教学动画系列(1)

  • 如何将文本转换为表格合并及拆分单元格将数字转换为中文字符简单的宏应用一步实现为多sheet页添加标题行查找公式报错原因的方法不合并单元格,使标题居中操作快速设置边框、取消

ppt怎么做_excel表格制作_office365_word文档_365办公网