使用Vlookup返回多個結果

在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結果的一些步驟:

  1. 使用Power Query從掃描的Excel表中創建新查詢。
  2. 在Power Query編輯器中,轉到「視圖」選項卡,並從「查詢設置」下拉列表中選擇「高級編輯器」。
  3. 在高級編輯器中,輸入以下函數:
    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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 16:07
下一篇 2024-12-22 16:07

相關推薦

發表回復

登錄後才能評論