对于连接两个工作表来筛选数据,最常用的用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(参数一,参数二,参数三)
第一参数:(必须)条件区域,根据条件计算的单元格区域。区域,绝对引用
第二参数:(必须)用于确定连接的条件。单元格,
第三参数:(必须)要连接的实际单元格区域。