VLOOKUP返回所有可能的值(不是唯一的)

时间:2017-10-18 18:25:02

标签: excel vba vlookup

我需要一个数组公式或VBA代码,它将像vlookup一样工作,但会返回所有可能的值而不是第一个值。

如果查找值对应5个唯一值,我需要代码来显示所有5个值。

我们可以假设查找值在列A中向下,查找范围是列F:G(列G中有5个唯一值)。

1 个答案:

答案 0 :(得分:1)

尝试使用此用户定义函数...

Function CustomVLookup(ByVal Lookup_Val As Range, Table_Array As Range, ColIndex As Integer) As String
Dim x, dict
Dim i As Long
x = Table_Array.Value
Set dict = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(x, 1)
    If x(i, 1) = Lookup_Val.Value Then
        dict.Item(x(i, ColIndex)) = ""
    End If
Next i
If dict.Count > 0 Then
    CustomVLookup = Join(dict.keys, ", ")
Else
    CustomVLookup = ""
End If
End Function

然后在下面的表格上使用它......

=CustomVLookup(A2,F2:G25,2)

其中A2是包含查找值的单元格,F2:G25是表格数组,2是列索引,即2,即本例中的列G.

编辑:上述函数将返回属于查找值的所有唯一值。如果要返回的所有值都不是唯一的,则需要采用不同的方法。如果是这种情况,请告诉我。