我需要一個數組公式或VBA代碼,它可以像查找一樣工作,但會返回所有可能的值,而不僅僅是第一個值。VLOOKUP返回所有可能的值(不唯一)
如果查找值對應5個唯一值,我需要代碼顯示所有5個值。
我們可以假設查找值在A列下行,查找範圍是列F:G(列G中有5個唯一值)。
我需要一個數組公式或VBA代碼,它可以像查找一樣工作,但會返回所有可能的值,而不僅僅是第一個值。VLOOKUP返回所有可能的值(不唯一)
如果查找值對應5個唯一值,我需要代碼顯示所有5個值。
我們可以假設查找值在A列下行,查找範圍是列F:G(列G中有5個唯一值)。
給這個用戶定義函數一試...
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。
編輯:上述函數將返回屬於查找值的所有唯一值。如果你想返回所有不唯一的值,你需要一個不同的方法。讓我知道如果是這樣的話。
您如何期待這些值被返回? - 在1個單元格內連接,還是作爲數組?你到目前爲止嘗試過哪些代碼? – Greedo
作爲數組返回。 我已嚴格嘗試索引/匹配的數組公式。 – urdearboy
我已經完成了公式和VBA代碼。使用公式,這將是非常困難的,它會帶來侷限性,您需要使用VBA解決方案。看看它,你會發現一些東西,不幸的是,我不能只是在這裏爲你寫代碼,因爲這不是一個寫我的代碼論壇,而是一個問題解答一個 – Ibo