在实际工作中有很多情况需要统计某项目的不重复值,并把对应的数据合并在一起。本例介绍如何通过自定义函数的方法完成符合条件的文本连接/文本合并功能。
![【Excel技巧】:[5]自定义函数连接文本](http://www.52ij.com/uploads/allimg/160401/1Q45TY5-0.jpg)
前期准备工作(包括相关工具或所使用的原料等)
Microsoft Office - Excel
步骤说明:
首先,双击D2单元格,并输入公式生成A列数据的不重复值:
=INDEX($A$2:$A$8,MATCH(,COUNTIF(D$1:D1,$A$2:$A$8),))
输入完毕后,左手按住Ctrl和Shift,右手按下回车键,并下拉公式。
![【Excel技巧】:[5]自定义函数连接文本](http://www.52ij.com/uploads/allimg/160401/1Q45S196-1.jpg)
第二,按键盘上的Alt+F11进入VBE界面。
![【Excel技巧】:[5]自定义函数连接文本](http://www.52ij.com/uploads/allimg/160401/1Q45TB3-2.jpg)
第三,选择【插入】-【模块】插入一个模块。
![【Excel技巧】:[5]自定义函数连接文本](http://www.52ij.com/uploads/allimg/160401/1Q45R434-3.jpg)
第四,在右侧空白处粘贴下列代码并关闭VBE界面:
Option Explicit
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)
Select
If
Next i
ConTxt=tmptext
Function
![【Excel技巧】:[5]自定义函数连接文本](http://www.52ij.com/uploads/allimg/160401/1Q45U462-4.jpg)
第五,双击E2粘贴公式=ConTxt(IF($A$2:$A$8=D2,"/"&$B$2:$B$8,"")),同样按Ctrl+Shift+Enter运行公式,并下拉。
![【Excel技巧】:[5]自定义函数连接文本](http://www.52ij.com/uploads/allimg/160401/1Q45V1W-5.jpg)
为了美观,将第一个斜杠去掉,将E2公式改成:
=MID(ConTxt(IF($A$2:$A$8=D2,"/"&$B$2:$B$8,"")),2,99)
数组方式运行,并下拉公式即完成了文本合并。
![【Excel技巧】:[5]自定义函数连接文本](http://www.52ij.com/uploads/allimg/160401/1Q45S000-6.jpg)
注意事项
如果是2007版工作簿,在保存时请选择保存成【启用宏的工作簿】格式。
如果您觉得此经验有用,可以点击本页面右上方的【大拇指】图案或者【分享】按钮,也可以点击本注意事项下方的【收藏】按钮。
【Excel技巧】(共20篇)上一篇:数据透视表法特殊...|下一篇:快速比较数据-公...经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本文系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
