KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中執行 VLOOKUP 並串接多個對應值?

作者曉陽修改日期

在 Excel 中使用 VLOOKUP 時,此函數通常只會傳回符合特定查閱條件的第一筆結果。然而,在許多實際應用情境中,您可能需要擷取並合併與同一鍵值對應的所有相符項目,例如列出班上所有學生姓名,或彙整某產品類別下的全部品項。由於標準 VLOOKUP 函數在此類需求上有所限制,您或許正尋求一種能同時實現多筆查閱結果的提取與串接至單一儲存格的方法。以下將為您介紹幾種實用且高效的做法,適用於不同版本的 Excel 與各類使用者偏好。


使用 TEXTJOIN 與 FILTER 函數執行 VLOOKUP 並串接多個對應值

若您使用的是 Excel 365 或 Excel 2021,結合 TEXTJOIN 與 FILTER 函數可提供一種高效、純公式驅動的方式,用來執行 VLOOKUP 並串接所有相符的值。此解決方案特別適合動態且經常更新的資料集,因為只要來源資料有所變更,結果就會自動重新整理。此方法最適用於支援 FILTER 函數的 Excel 版本,而該函數僅限於近期的 Office 版本。

在目標儲存格中輸入下列公式,若需套用至其他列,請向下拖曳公式。所有對應的相符值將自動擷取並整合至單一儲存格中。詳情請參閱截圖:

=TEXTJOIN(", ", TRUE, FILTER($B$2:$B$16, $A$2:$A$16=D2, ""))

使用 TEXTJOIN 和 FILTER 函數進行 vlookup 並串連多個值

此公式的說明:
  1. FILTER($B$2:$B$16, $A$2:$A$16=D2, "") 此公式會逐一檢查 $A$2:$A$16 中的每個值;若與 D2 的值相符,則將 $B$2:$B$16 中對應的值納入結果陣列。
    • $B$2:$B$16:用於擷取相符數值的範圍。
    • $A$2:$A$16=D2 選取值的條件:僅處理 $A$2:$A$16 中內容等於 D2 的那些列。
  2. TEXTJOIN(", ", TRUE, ...):此函數接收 FILTER 函數輸出的一組相符值,並將其自動串接為單一文字字串,以指定的分隔符號(逗號與空格)分隔,同時忽略空白項目。
    • ,:設定逗號與空格為分隔符號;您可依需求變更此符號,例如改用分號或換行符號。
    • TRUE:確保在組合過程中忽略空儲存格,以獲得格式整齊的輸出結果。

特別注意:此方法僅適用於 Excel 365 或 Excel 2021,無法在舊版 Excel(例如 Excel 2019、2016 或更早版本)中運作。套用前請務必確認您的 Excel 版本!

提示:當您在數據區域中新增其他相符項目,或查閱值(例如 D2)發生變更時,結果將自動更新,無需任何額外操作!

潛在限制:在極大型資料集中,公式計算時間可能延長。此外,使用者必須確保查閱範圍或結果範圍中未包含合併儲存格,否則可能導致公式錯誤。


使用 Kutools for Excel 執行 VLOOKUP 並串接多個對應值

若您覺得內建公式操作繁複,或您的 Excel 版本不支援 TEXTJOIN、FILTER 等進階函數,Kutools for Excel 提供直覺易用的圖形化解決方案。其「一對多查找」功能只需簡單幾步,就能輕鬆查閱並串接所有相符結果,無論是初學者或進階使用者都能快速上手。使用 Kutools 時,無需撰寫複雜公式或程式碼,特別適合處理需反覆查詢與彙總的大型或動態資料集。

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……

安裝 Kutools for Excel 後,請依照下列步驟操作:

按一下 Kutools > 高級 LOOKUP > 一對多查找(返回多個結果),即可開啟設定對話方塊。在此對話方塊中,您可透過下列步驟快速設定查閱與輸出選項:

  1. 選取要顯示串接結果的目標儲存格,以及包含您要搜尋之值的儲存格;
  2. 指定同時包含查閱鍵與結果欄位的表格範圍;
  3. 指定哪一欄包含查閱鍵(關鍵列),以及哪一欄的值將被串接(返回列);
  4. 按一下「確定」按鈕,確認設定並開始處理資料。
    在對話框中指定選項

結果:Kutools 會在您選取的輸出儲存格中顯示所有相符且已串接的值。請參閱截圖:
由 Kutools 根據條件串連

此方法強烈推薦給偏好透過 Excel 介面操作、不願使用複雜公式或程式碼的使用者。它還能降低公式錯誤的機率,並提升處理重複性查閱與串接任務的效率。


使用使用者自訂函數執行 VLOOKUP 並串接多個對應值

對於熟悉 VBA(Visual Basic for Applications)的使用者,或仍在使用不支援動態陣列與 FILTER 函數的舊版 Excel 的使用者,可透過建立自訂使用者定義函數(UDF),靈活串接多筆結果。此方法相容於所有 Excel 版本,並能依特定分隔符號或條件輕鬆調整。

1. 按住 ALT + F11 鍵,即可開啟 Microsoft Visual Basic for Applications 視窗。

2. 按一下插入 > 模組,並將下列程式碼貼到模組視窗中。

VBA 程式碼:在單一儲存格中執行 VLOOKUP 並串接多個相符值

Function ConcatenateMatches(LookupValue As String, LookupRange As Range, ReturnRange As Range, Optional Delimiter As String = ", ") As String
'Updateby Extendoffice
    Dim Cell As Range
    Dim Result As String
    Result = ""
    For Each Cell In LookupRange
        If Cell.Value = LookupValue Then
            Result = Result & Cell.Offset(0, ReturnRange.Column - LookupRange.Column).Value & Delimiter
        End If
    Next Cell
    If Result <> "" Then
        Result = Left(Result, Len(Result) - Len(Delimiter))
    End If
    ConcatenateMatches = Result
End Function

3. 保存並關閉 VBA 編輯器,返回工作表。在您想顯示結果的空白儲存格中輸入公式:=ConcatenateMatches(D2, $A$2:$A$16, $B$2:$B$16)。視需要向下拖曳填滿控點,將公式複製到其他儲存格。所有符合特定查閱值的對應結果將自動傳回,並以逗號與空格串接至單一儲存格中!詳情請參閱截圖:

由 VBA 根據條件串連

此公式的說明:
  • D2:要在資料集中比對的查閱值(Lookup Value)。
  • A2:A16:函數搜尋查閱值的範圍(LookupRange)。
  • B2:B16:當查閱值相符時,要串接其對應值的範圍(ReturnRange)。

使用 VBA 程式碼執行 VLOOKUP 並串接多個對應值

對於需要重複使用,或希望避免在工作表儲存格中使用自訂函數的情境,您可以直接運用現成的 VBA 巨集來串接結果。此方法在共用環境中表現出色,尤其適用於並非所有使用者都安裝相同版本或增益集的情況。

1. 按一下開發人員工具 > Visual Basic,即可開啟 VBA 編輯器。

2. 在 VBA 視窗中,按一下插入> 模組,然後將此程式碼貼到模組中:

Sub VLookupAndConcatenate()
    Dim ws As Worksheet
    Dim dataRange As Range, lookupRange As Range, resultRange As Range
    Dim dict As Object
    Dim i As Long, lastRow As Long
    Dim lookupValue As Variant, result As String
    Dim delimiter As String
    delimiter = ", "
    Set dict = CreateObject("Scripting.Dictionary")
    Set ws = ActiveSheet
    On Error Resume Next
    Set dataRange = Application.InputBox( _
        Prompt:="Please select the data range (contains lookup column and result column)", _
        Title:="Select Data Range", _
        Type:=8)
    On Error GoTo 0
    If dataRange Is Nothing Then Exit Sub
    On Error Resume Next
    Set lookupRange = Application.InputBox( _
        Prompt:="Please select the lookup range (single column)", _
        Title:="Select Lookup Range", _
        Type:=8)
    On Error GoTo 0
    If lookupRange Is Nothing Then Exit Sub
    On Error Resume Next
    Set resultRange = Application.InputBox( _
        Prompt:="Please select the starting cell for results output", _
        Title:="Select Output Location", _
        Type:=8)
    On Error GoTo 0
    If resultRange Is Nothing Then Exit Sub
    resultRange.Resize(lookupRange.Rows.Count, 1).ClearContents
    For i = 1 To dataRange.Rows.Count
        lookupValue = dataRange.Cells(i, 1).Value
        If Not dict.Exists(lookupValue) Then
            dict.Add lookupValue, dataRange.Cells(i, 2).Value
        Else
            dict(lookupValue) = dict(lookupValue) & delimiter & dataRange.Cells(i, 2).Value
        End If
    Next i
    For i = 1 To lookupRange.Rows.Count
        lookupValue = lookupRange.Cells(i, 1).Value
        If dict.Exists(lookupValue) Then
            resultRange.Cells(i, 1).Value = dict(lookupValue)
        Else
            resultRange.Cells(i, 1).Value = "Not Found"
        End If
    Next i
    MsgBox "Operation completed! Processed " & lookupRange.Rows.Count & " lookup values.", vbInformation
End Sub

3. 按一下執行按鈕按鈕以執行巨集,系統將彈出輸入方塊,提示您選取數據區域、查閱範圍與結果範圍。串接結果會立即顯示在您指定的輸出儲存格中!

若您經常使用不同值執行多重串接搜尋,此巨集方法特別實用,因為它可避免工作表因 UDF 呼叫而變得雜亂。

如有需要,您可輕鬆調整程式碼中的分隔符號,並擴充巨集,將結果依您的工作流程輸出至儲存格或檔案。

在 Excel 中,有多種方式可串接多個對應的值,每種方法各有優勢,適合不同情境。無論您選擇使用動態陣列公式、類似 Kutools for Excel 的增益集,還是基於 VBA 的解決方案,都能有效提升您分析與呈現群組資料的能力。請根據資料集的規模與複雜度,評估哪種方法能為您或您的團隊帶來最佳效能與維護便利性。日常作業中,務必檢查資料一致性、避免儲存格合併,並確認參照範圍,以確保最佳結果。若公式計算出現錯誤,請再次確認所選範圍是否與資料相符,並確保依您的 Excel 版本採用正確的公式輸入方式。

若想學習更多進階 Excel 技巧及豐富實用的操作指南,歡迎造訪我們完整的教學資源庫

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用