按条件合并多个excel单元格内容到同一单元格的自定义函数

网友投稿 820 2022-12-03

按条件合并多个Excel单元格内容到同一单元格的自定义函数

Excel中的CONCATENATE函数可以将多个文本字符串联接成一个文本字符串,但有时需要按指定条件合并某些单元格的内容到一个单元格,这时CONCATENATE函数无法实现,而使用下面的自定义函数就十分方便了。如图所示,需要在F2单元格中将“调资额”为“190”的“姓名”用“、”连接起来。

步骤如下:

1.按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口中输入下列代码:

Function CONCATENATEIF(rng1 As Range, rng2 As Range, criteria As String, separator As String) As StringDim arr()Dim rCell As RangeDim i As Integer, j As IntegerOn Error Resume Nextj = WorksheetFunction.CountIf(rng2, criteria)If j > 0 ThenReDim arr(0 To j – 1)For Each rCell In rng2If WorksheetFunction.CountIf(rCell, criteria) Thenarr(i) = rng1.Item(1).Offset(rCell.Row – rng2.Row, rCell.Column – rng2.Column).Valuei = i + 1End IfNextFor i = 0 To j – 1CONCATENATEIF = CONCATENATEIF & arr(i) & IIf(i <> j – 1, separator, "")NextEnd IfEnd Function

上述代码定义了一个自定义函数CONCATENATEIF,共有四个参数,分别为需要连接单元格内容的区域(通常为单行或单列)、条件区域,条件和分隔符。使用该自定义函数时注意:

①参数中的两个区域的形状大小需相同;

②条件的输入类似COUNTIF函数,如 190、">100"、"苹果" 等,可使用通配符“*”、“?”。

按条件合并多个excel单元格内容到同一单元格的自定义函数

2.返回Excel工作表界面,在F2单元格中输入公式:

=CONCATENATEIF($B$2:$B$16,$C$2:$C$16,E2,"、")

即可得到所需的结果。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:VBA调用Excel函数公式的代码 Excel教程
下一篇:如何在受保护的excel工作表中使用分级显示
相关文章