本文作者:office教程网

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

office教程网 2024-09-21 05:19:20
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

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

excel VBA批量更改数据透视表数据字段值汇总方式

如果需要更改Excel数据透视表数值区域中字段的值汇总方式,在字段较多的情况下,手动逐一更改显得有些繁琐。用下面的VBA代码可快速批量更改全部数据字段的值汇总方式。例如要将当前工作表中第一个数据透视表的所有数据字段值汇总方式改为“求和”,方法如下: 按Alt F11,打开VBA编辑器,在代码窗

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

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

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

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

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

即可得到所需的结果。

Excel将区域中的值按出现次数的多少提取到一列

对于一个包含重复数值的区域,要将其中的数值按出现次数的多少提取到一列,通常可以用包含MODE函数的数组公式。例如数值区域为A1:E10,要将其中的数值提取到G列,如图。 在G2中输入: =MODE(IF(COUNTIF($G$1:G1,A$1:E$10)=0,A$1:E$10)) 公式输入完毕按Ctrl Shift

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:按条件合并多个excel单元格内容到同一单元格的自定义函数发布于2024-09-21 05:19:20
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: