按条件合并多个单元格内容到同一单元格的自定义函数
导读:Excel中的CONCATENATE函数可以将多个文本字符串联接成一个文本字符串,但有时需要按指定条件合并某些单元格的内容到一个单元格,这时CONCATENATE函数无法实现,而使用下面的自定义函数就十分方便了。如图所示,需要在F2单元格中将调资额为190的姓名用、连接起来。 步骤如下: 1.按Alt+F11,打开VBA编辑器,单击菜单插入模块,在代码窗口中输入下列代码: Function CONCATENATEIF(rng1 As
Excel中的CONCATENATE函数可以将多个文本字符串联接成一个文本字符串,但有时需要按指定条件合并某些单元格的内容到一个单元格,这时CONCATENATE函数无法实现,而使用下面的自定义函数就十分方便了。如图所示,需要在F2单元格中将“调资额”为“190”的“姓名”用“、”连接起来。
步骤如下:
1.按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口中输入下列代码:
Function CONCATENATEIF(rng1 As Range, rng2 As Range, criteria As String, separator As String) As String
Dim arr()
Dim rCell As Range
Dim i As Integer, j As Integer
On Error Resume Next
j = WorksheetFunction.CountIf(rng2, criteria)
If j > 0 Then
ReDim arr(0 To j - 1)
For Each rCell In rng2
If WorksheetFunction.CountIf(rCell, criteria) Then
arr(i) = rng1.Item(1).Offset(rCell.Row - rng2.Row, rCell.Column - rng2.Column).Value
i = i + 1
End If
Next
For i = 0 To j - 1
CONCATENATEIF = CONCATENATEIF & arr(i) & IIf(i j - 1, separator, "")
Next
End If
End Function
上述代码定义了一个自定义函数CONCATENATEIF,共有四个参数,分别为需要连接单元格内容的区域(通常为单行或单列)、条件区域,条件和分隔符。使用该自定义函数时注意:
①参数中的两个区域的形状大小需相同;
②条件的输入类似COUNTIF函数,如 190、">100"、"苹果" 等,可使用通配符“*”、“?”。
2.返回Excel工作表界面,在F2单元格中输入公式:
=CONCATENATEIF($B$2:$B$16,$C$2:$C$16,E2,"、")
即可得到所需的结果。
- 上一篇: 如何对票据内容进行审核
- 下一篇: 利用Excel分析销货记录

- 材料验收入库结转材料采购成本分录 2025-12-19
- 个体户可以用个人账户收款吗 2025-12-19
- 开办诊所是办个体还是公司需要办理营业执照吗 2025-12-18
- 高速过路费电子发票怎么打印 2025-12-20
- 纯牛奶与酸奶的税率一样吗 2025-12-20
- 法人提取备用金合法吗 2025-12-19
- 视同销售怎么结转成本 2025-12-20
- 公积金缴费基数是应发工资还是实发 2025-12-18
- 出差的费用可以做进营业成本吗 2025-12-19
- 个体户开票入一定要开公账吗 2025-12-18
- 一般纳税人电力工程有限公司开了9个点的增值税发普票,也开了3个点的增值税专票,那取得的增值税专用发票进项税额可以抵扣吗 2026-02-21
- 加工费需要怎么开发票,开票的数量是1,还是不是? 2026-03-23
- 场地租赁费,一般是什么经营范围才可以开票? 2026-01-22
- 请问,健身房提供健身服务属于服务业还是文化体育业的税率呢 2026-02-12
- 老师,公司要变更营业执照地址,填申请书时有一栏要写:公司名称自主申报流水号,这个流水号在哪找来填的 2025-12-22
- 支付给会计税务事务所的汇算清缴鉴证报的费用,做什么会计科目 2026-03-03
- 公司购买的办公用品发票 可以抵扣销项税吗 2026-03-04
- 收据是不用能作账的是吗?那我瘦单位职工的扣款写的收据可以做为凭证做账吗? 2026-03-20
- ,支付的办公室租金20000元(3个月),应该如何做会计分录 2026-03-24
- 合并报表中的抵权益和抵损益的核算是不是和内部交易抵消分录无关? 2026-01-20