我需要一个数组公式或VBA代码,它将像vlookup一样工作,但会返回所有可能的值而不是第一个值。
如果查找值对应5个唯一值,我需要代码来显示所有5个值。
我们可以假设查找值在列A中向下,查找范围是列F:G(列G中有5个唯一值)。
答案 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.
编辑:上述函数将返回属于查找值的所有唯一值。如果要返回的所有值都不是唯一的,则需要采用不同的方法。如果是这种情况,请告诉我。