时间:2020-02-10  来源:百度经验  作者:shaowu459  阅读:10

在实际工作中有很多情况需要统计某项目的不重复值,并把对应的数据合并在一起。本例介绍如何通过自定义函数的方法完成符合条件的文本连接/文本合并功能。

【Excel技巧】:[5]自定义函数连接文本

首先,双击D2单元格,并输入公式生成A列数据的不重复值:=INDEX($A$2:$A$8,MATCH(,COUNTIF(D$1:D1,$A$2:$A$8),))输入完毕后,左手按住Ctrl和Shift,右手按下回车键,并下拉公式。

【Excel技巧】:[5]自定义函数连接文本

第二,按键盘上的Alt+F11进入VBE界面。

【Excel技巧】:[5]自定义函数连接文本

第三,选择【插入】-【模块】插入一个模块。

【Excel技巧】:[5]自定义函数连接文本

第四,在右侧空白处粘贴下列代码并关闭VBE界面:Option ExplicitFunction ConTxt(ParamArray args() As Variant) As VariantDim tmptext As Variant, i As Variant, cellv As VariantDim cell As Rangetmptext = ""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 IfNext iConTxt = tmptextEnd Function

【Excel技巧】:[5]自定义函数连接文本

第五,双击E2粘贴公式=ConTxt(IF($A$2:$A$8=D2,"/"&$B$2:$B$8,"")),同样按Ctrl+Shift+Enter运行公式,并下拉。

【Excel技巧】:[5]自定义函数连接文本

为了美观,将第一个斜杠去掉,将E2公式改成:=MID(ConTxt(IF($A$2:$A$8=D2,"/"&$B$2:$B$8,"")),2,99)数组方式运行,并下拉公式即完成了文本合并。

【Excel技巧】:[5]自定义函数连接文本

Top