Excel函数技巧:自定义函数连接文本

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

 

步骤说明:

  首先,双击D2单元格,并输入公式生成A列数据的不重复值:

  =INDEX($A$2:$A$8,MATCH(,COUNTIF(D$1:D1,$A$2:$A$8),))

  输入完毕后,左手按住Ctrl和Shift,右手按下回车键,并下拉公式。  

 

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

 

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

 

  第四,在右侧空白处粘贴下列代码并关闭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)

  End Select

  End If

  Next i

  ConTxt = tmptext

  End Function  

 

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

 

  为了美观,将第一个斜杠去掉,将E2公式改成:

  =MID(ConTxt(IF($A$2:$A$8=D2,"/"&$B$2:$B$8,"")),2,99)

  数组方式运行,并下拉公式即完成了文本合并。  

 

注意事项

  如果是2007版工作簿,在保存时请选择保存成【启用宏的工作簿】格式。

  如果您觉得此经验有用,可以点击本页面右上方的【大拇指】图案或者【分享】按钮,也可以点击本注意事项下方的【收藏】按钮。

分享:

相关文章

相关标签

推荐文章