在Excel中,Vlookup函數廣泛用於從另一個工作表或工作簿中查找並返回匹配值。通常情況下,Vlookup函數只返回匹配列中第一個匹配項的值。然而,有時我們需要找到所有匹配的值,並將其作為一個列表返回。
一、使用數組公式
您可以使用數組公式vlookup來返回多個結果。下面是一個簡單的例子。
= IFERROR(INDEX($C$2:$C$12, SMALL(IF($B$16=$B$2:$B$12, ROW($B$2:$B$12)-ROW($B$2)+1), ROW(1:1))), "")
在此公式中,C2:C12是要返回的值列表,B2:B12是要搜索的列,$B$16是要查找的關鍵值。這個公式將返回一個數組{ Milk, Bread, Eggs }。
要使用此公式,請記得按Ctrl + Shift + Enter鍵來確定公式。
二、使用Filter函數
如果您不想使用數組公式,可以使用Filter函數來篩選匹配的值。下面是一個例子:
=FILTER(A2:C12, B2:B12=$B$16)
這個公式將返回一個表格,其中列A到C包含搜索值的所有匹配項(如果B列與$B$16匹配)。您可以使用管理員結果來執行其他操作,例如將其作為一個列表輸出或計算某些值。
三、使用宏函數
如果您正在使用VBA,您可以編寫一個宏函數來實現返回多個值的功能。下面是一個例子(請在VBE中創建一個新的模塊並將其複製到其中):
Function MultiVLookup(lookup_value As Variant, table_array As Range, col_index As Long)
Dim result() As String
Dim count As Long
For Each cell In table_array
If cell = lookup_value Then
count = count + 1
ReDim Preserve result(1 To count) As String
result(count) = cell.Offset(0, col_index - 1)
End If
Next cell
MultiVLookup = result
End Function
在此函數中,lookup_value是要查找的值,table_array是要搜索的區域,col_index是要返回的列的索引。該函數將返回搜索結果的數組。
四、使用Power Query
Power Query是Excel的附加組件,它可以幫助您通過從各種來源提取、轉換和載入數據來自動化數據收集的過程。使用Power Query,您可以輕鬆地從多個表中篩選、組合和匯總數據,以生成您需要的結果。
以下是使用Power Query返回多個Vlookup結果的一些步驟:
- 使用Power Query從掃描的Excel表中創建新查詢。
- 在Power Query編輯器中,轉到「視圖」選項卡,並從「查詢設置」下拉列表中選擇「高級編輯器」。
- 在高級編輯器中,輸入以下函數:
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], LookupValue = "Product 1", MatchedRows = Table.SelectRows(Source, each [Product] = LookupValue), Result = MatchedRows in Result
請注意,此函數假定查找值為「Product 1」,您應該將其替換為您要查找的關鍵值。此外,此函數還假定匹配列名為「Product」。
完成後,請單擊「關閉並應用」以保存更改並應用函數。結果將向您顯示與搜索值匹配的所有行。
五、總結
總的來說,有多種方法可以使用Excel返回多個Vlookup結果,包括使用數組公式、Filter函數、宏函數和Power Query。具體哪種方法更適合您取決於您的特定需求和技能水平。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/286230.html