EXCEL自定义JOINIF函数连接文本

对于连接两个工作表来筛选数据,最常用的用vlookup。但是vlookup没有办法将筛选出的所有结果放在一个单元格中。这就需要自定义joinif函数。

按ALT+F11,打开VBA编辑器,新建一个模块,把下面的自定义函数代码复制到模块中,关闭VBA编辑器

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

然后,就可以作为函数正常使用了。

joinif(参数一,参数二,参数三)

第一参数:(必须)条件区域,根据条件计算的单元格区域。区域,绝对引用
第二参数:(必须)用于确定连接的条件。单元格,
第三参数:(必须)要连接的实际单元格区域。

示例

发表评论

电子邮件地址不会被公开。 必填项已用*标注