Excel的Vlookup函数是最常用的匹配查询函数,但是当源数据区域存在重复值时,一般只能匹配到首次出现的内容(从上至下)。

如何将多个重复值涉及的内容匹配过来?其中一种方式就是用VBA自定义函数,将重复值涉及的内容集中匹配到一个单元格内。

1、进入VBA编码界面

按Alt F11键,打开“Microsoft Visual Basic for Applications窗口”

右键单击[模块],插入“模块”

excel通过自定义函数匹配多个重复值的方法-趣帮office教程网

2、录入VBA代码

在VBA编码窗口,录入以下代码。

excel通过自定义函数匹配多个重复值的方法-趣帮office教程网

Function MultipleLookup(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
Dim xDic As New Dictionary
Dim xRows As Long
Dim xStr As String
Dim i As Long
On Error Resume Next
xRows = LookupRange.Rows.Count
For i = 1 To xRows
If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
End If
Next
xStr = ""
MultipleLookup = xStr
If xDic.Count > 0 Then
For i = 0 To xDic.Count - 1
xStr = xStr & xDic.keys(i) & ","
Next
MultipleLookup = Left(xStr, Len(xStr) - 1)
End If
End Function

3、引用公式

返回到工作表,在F2单元格输入公式:=MultipleLookup(E2,$B$2:$C$31,2),如涉及多行数据,则将公式复制到其他单元格。

公式说明:E2是查询条件,B2:C31是要使用的数据范围,数字2是包含返回值的列号。

excel通过自定义函数匹配多个重复值的方法-趣帮office教程网

4、例外信息处理

如果在使用公式的过程中出现以下例外信息,则去加载相应的VBAProject。

excel通过自定义函数匹配多个重复值的方法-趣帮office教程网

在VBA编码界面,单击菜单栏[工具]=>[引用]

excel通过自定义函数匹配多个重复值的方法-趣帮office教程网

[引用-VBAProject]界面,勾选[Microsoft Scripting Runtime]

excel通过自定义函数匹配多个重复值的方法-趣帮office教程网