我試圖找到一種方法,從陣列獲取多個值在一個單元想從索引陣列中多個值到一個單元格在Excel
說來顯示,比如我有兩列,下面
b 2
的C 1
d 3
e 2的
我希望所有的值形成第一列,其中第2欄是1
VLOOKUP和索引與匹配兩者僅提供所述第一匹配的實例,有一種方法與一個函數來做到這還是必須使用VBA創建宏?
感謝
我試圖找到一種方法,從陣列獲取多個值在一個單元想從索引陣列中多個值到一個單元格在Excel
說來顯示,比如我有兩列,下面
b 2
的C 1
d 3
e 2的
我希望所有的值形成第一列,其中第2欄是1
VLOOKUP和索引與匹配兩者僅提供所述第一匹配的實例,有一種方法與一個函數來做到這還是必須使用VBA創建宏?
感謝
考慮你的數據在範圍內A1:B5
和Cell C1
包含你正在尋找的數量。
在Cell D1
中輸入以下數組公式,並向下拖動/複製直到根據需要排。
=IFERROR(INDEX($A$1:$A$5, SMALL(IF($C$1=$B$1:$B$5, ROW($B$1:$B$5)-MIN(ROW($B$1:$B$5))+1, ""), ROW(A1))), "")
作爲一個數組公式,你必須通過按Ctrl鍵+移+輸入提交上述公式。
如果你希望所有的結果,在一個單元中顯示,你可以使用VBA公式:
'r is the range of cells that you have a value to look for
'v is the value you are looking for
Function getValues(r As Range, v As Variant)
Dim c As Range
getValues = ""
For Each c In r
If c.Value = v Then
If getValues = "" Then
'Offset(0,-1) will give you value from previous coulmn
getValues = c.Offset(0, -1).Value
Else
getValues = getValues & "," & c.Offset(0, -1).Value
End If
End If
Next c
End Function
使用例如:在單元格C1中輸入驗證=getValues(B1:B5,1)
我假設您知道如何進入此代碼轉換爲VBA編輯器... –
謝謝,非常有用的一點代碼,儘管我希望避免vba路由,因爲我想稍後將其轉換爲Google表格,並且至少大部分內置函數不需要重新編程!仍然,現在非常有用。 –
是的,我知道如何使用VBA編輯器 - 我廣泛編程在Excel和Access中的VBA –
這是一個真實的實際情況問題。 – skkakkar