返回首页
当前位置: 主页 > Excel教程 > Excel VBA教程 >

EXCEL中VBA函数其中使用自定义函数JOINIF函数连接文本

时间:2017-04-28 12:51来源:Office教程学习网 www.office68.com编辑:麦田守望者

小伙伴,请看下面的截图:左边是组别、姓名。我们希望通过EXCEL实现右边的效果。

VBA函数教程 

  先别往下面看哟!思考两分钟,你平时接触到的EXCEL函数能实现吗?

  小奇老师给大家分享的是使用自定义函数JOINIF函数,来按条件连接文本。
 
  下面就一起学习处理字符串的自定义函数——JOINIF函数,先认识一下:
 
函数名:JOINIF
 
作用:对参数范围中符合指定条件的单元格内容进行连接。
 
参数介绍:
第一参数:(必须)条件区域,根据条件计算的单元格区域。
第二参数:(必须)用于确定连接的条件。
第三参数:(必须)要连接的实际单元格区域。
 
  通过上面的介绍,我们不难看出,JOINIF函数和SUMIF函数极其相似,只是功能上由求和变成了连接文本。
 
  下面我们通过一个例子:如下图,A、B列为数据源,分别为组别和姓名,目标是组织成D、E列的格式:
 
 
 解决方法:
 
  一、创建自定义函数:
 
  1、新建一个EXCEL文档,只保留一个工作表,其余删除。按ALT+F11,打开VBE编辑器,新建一个模块,把下面的自定义函数代码复制到模块中,关闭VBE编辑器。
 
Function JOINIF(Rng1 As Range, Str, Rng2 As Range)
    Dim Arr, Brr
    Dim i As Long
    Dim j As Long
    Dim MyStr As String
    If Rng1.Rows.Count > 65536 Then
        Arr = Rng1.Resize(65536, Rng1.Columns)
        Brr = Rng2.Resize(65536, Rng1.Columns)
    Else
        Arr = Rng1
        Brr = Rng2
    End If

    For i = 1 To UBound(Arr)
        For j = 1 To UBound(Arr, 2)
            If Arr(i, j) <> "" Then
                If Arr(i, j) = Str Then
                    MyStr = MyStr & Brr(i, j) & ","
                End If
            Else
                Exit For
            End If
        Next j
    Next i
    JOINIF = Left(MyStr, Len(MyStr) - 1)
End Function
Excel加载宏 
 
  2、点击【文件】【另存为】,文件保存类型选择“Excel加载宏”。它将自动存入ADDIN文件夹中。
 
 EXCEL-VBA交流QQ群
 
  3、从要使用此函数的EXCEL文件的【开发工具】-【加载宏】中勾选所保存的宏文件名,确定。就可以在工作表中的随心所欲的使用自定义的按条件连接文本函数啦。
 
 
  4、看一下使用效果,是不是很酷呢?
 
 
------分隔线----------------------------
标签(Tag):excel excel2016 VBA函 JOINIF函数
------分隔线----------------------------
推荐内容
猜你感兴趣