Skip to main content

如何在 Excel 中使用 vlookup 返回單一單元格中的多個值?

Author: Xiaoyang Last Modified: 2025-08-06

VLOOKUP 是 Excel 中一個強大的函數,但默認情況下,它只返回第一個匹配的值。如果你需要獲取所有匹配的值並將它們合併到一個單元格中該怎麼辦呢?這在分析數據集或總結信息時是一個常見的需求。在本指南中,我們將逐步介紹如何使用公式和實用功能將多個值返回到單一單元格中。

使用 TEXTJOIN 函數將多個值返回到一個單元格(Excel 2019 和 Office 365)

使用 Kutools 將多個值返回到一個單元格

使用用戶定義函數將多個值返回到一個單元格

vlookup to return multiple values in one cell


使用 TEXTJOIN 函數將多個值返回到一個單元格(Excel 2019 和 Office 365)

如果你使用的是較高版本的 Excel,例如 Excel 2019 和 Office 365,有一個新函數 - TEXTJOIN,通過這個強大的函數,你可以快速進行 vlookup 並返回所有匹配的值到一個單元格中。

將所有匹配的值返回到一個單元格

請將以下公式應用到你想放置結果的空白單元格中,然後按 Ctrl + Shift + Enter 鍵一起以獲得第一個結果,然後拖動填充柄向下到你想要使用的單元格,你將獲得如下截圖所示的所有對應值:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

備註: 在上述公式中,A2:A11 是包含查找數據的查找範圍,E2 是查找值,C2:C11 是你希望返回匹配值的數據範圍,"," 是用於分隔多條記錄的區分符。

將所有不重複的匹配值返回到一個單元格

如果你想根據查找數據返回所有匹配的值且不包含重複項,下面的公式可能會幫助你。

請將以下公式複製並粘貼到空白單元格中,然後按 Ctrl + Shift + Enter 鍵一起以獲得第一個結果,然後複製此公式填滿其他單元格,你將獲得如下截圖所示的所有對應值且沒有重複項:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))

備註: 在上述公式中,A2:A11 是包含查找數據的查找範圍,E2 是查找值,C2:C11 是你希望返回匹配值的數據範圍,"," 是用於分隔多條記錄的區分符。

使用 Kutools 將多個值返回到一個單元格

借助 Kutools for Excel 的「高級合併行」功能,你可以輕鬆地將多個匹配值檢索到單一單元格中——無需複雜的公式!告別手動操作,解鎖更高效的方式來處理你在 Excel 中的查找任務。讓我們來看看 Kutools for Excel 如何實現這一切!

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

安裝 Kutools for Excel 後,請按照以下步驟操作:

1. 選擇你希望根據另一列合併一列數據的數據範圍。

2. 點擊「Kutools」 > 「合併與拆分」 > 「高級合併行」,見截圖:

3. 在彈出的「高級合併行」對話框中:

  • 點擊要基於其進行合併的關鍵列名稱,然後點擊「主鍵」。
  • 然後點擊另一列,你希望根據關鍵列合併其數據,並從「計算」字段的下拉列表中選擇一個區分符以分隔合併的數據,從「合併」部分選擇。
  • 然後,點擊確定按鈕。

specify options in the dialog box

來自另一列的所有對應值,基於相同的值,被合併到單一單元格中。見截圖:

original data arrow right all cell values are extracted into one cell based on the same data

提示:如果在合併單元格時想刪除重複內容,只需在對話框中勾選「刪除重複值」選項即可。這確保只有唯一的條目被合併到單一單元格中,使你的數據更加整潔有序,而無需額外努力。見截圖:

original data arrow right all cell values are extracted into one cell skip the duplicates

立即下載並免費試用 Kutools for Excel!


使用用戶定義函數將多個值返回到一個單元格

上述 TEXTJOIN 函數僅適用於 Excel 2019 和 Office 365,如果你使用的是其他較低版本的 Excel,則應該使用一些代碼來完成此任務。

將所有匹配的值返回到一個單元格

1. 按住「ALT + F11」鍵,打開「Microsoft Visual Basic for Applications」窗口。

2. 點擊「插入」 > 「模塊」,並將以下代碼粘貼到模塊窗口中。

VBA 代碼:Vlookup 返回多個值到一個單元格

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. 然後保存並關閉此代碼,返回工作表,並輸入此公式: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") 到你希望放置結果的特定空白單元格中,然後拖動填充柄向下以獲取你希望的一個單元格中的所有對應值,見截圖:

Vlookup to return all matching values into one cell with user defined function

備註: 在上述公式中,A2:A11 是包含查找數據的查找範圍,E2 是查找值,C2:C11 是你希望返回匹配值的數據範圍,"," 是用於分隔多條記錄的區分符。

將所有不重複的匹配值返回到一個單元格

要忽略返回匹配值中的重複項,請使用以下代碼。

1. 按住「Alt + F11」鍵打開「Microsoft Visual Basic for Applications」窗口。

2. 點擊「插入」 > 「模塊」,並將以下代碼粘貼到模塊窗口中。

VBA 代碼:Vlookup 並返回多個唯一匹配值到一個單元格

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
'Updateby Extendoffice
    Dim xDic As New Dictionary
    Dim xRows As Long
    Dim xStr As String
    Dim i As Long
    On Error Resume Next
    xRows = LookupRange.Rows.Count
    For i = 1 To xRows
        If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
            xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
        End If
    Next
    xStr = ""
    MultipleLookupNoRept = xStr
    If xDic.Count > 0 Then
        For i = 0 To xDic.Count - 1
            xStr = xStr & xDic.Keys(i) & ","
        Next
        MultipleLookupNoRept = Left(xStr, Len(xStr) - 1)
    End If
End Function

3. 插入代碼後,然後點擊「工具」 > 「引用」在打開的「Microsoft Visual Basic for Applications」窗口中,然後,在彈出的「引用 – VBAProject」對話框中,勾選「可用引用」列表框中的「Microsoft Scripting Runtime」選項,見截圖:

click Tools > References arrow right check Microsoft Scripting Runtime option

4. 然後點擊確定關閉對話框,保存並關閉代碼窗口,返回工作表,並輸入此公式: =MultipleLookupNoRept(E2,$A$2:$C$11,3) 到你希望輸出結果的空白單元格中,然後拖動填充柄向下以獲取所有匹配值,見截圖:

Vlookup to return all matching values without duplicates into one cell by user defined function

備註: 在上述公式中,A2:C11 是你希望使用的數據範圍,E2 是查找值,數字 3 是包含返回值的列號。

無論你選擇像 TEXTJOIN 與數組函數結合的公式、利用像 Kutools for Excel 或用戶定義函數這樣的工具,所有方法都有助於簡化複雜的查找任務。選擇最適合你需求的方法。如果你有興趣探索更多 Excel 技巧,我們的網站提供了成千上萬的教程


更多相關文章:

  • VLOOKUP 函數的一些基本和高級示例
  • 在 Excel 中,VLOOKUP 函數對於大多數 Excel 用戶來說是一個強大的函數,用於在數據範圍的最左側查找值,並從指定的列中返回同一行的匹配值。本教程討論了如何在 Excel 中使用 VLOOKUP 函數的一些基本和高級示例。
  • 根據一個或多個條件返回多個匹配值
  • 通常,查找特定值並返回匹配項目對我們大多數人來說很容易,使用 VLOOKUP 函數即可。但是,你是否嘗試過根據一個或多個條件返回多個匹配值呢?在本文中,我將介紹一些解決此複雜任務的公式。
  • Vlookup 並垂直返回多個值
  • 通常,你可以使用 Vlookup 函數獲取第一個對應值,但有時你希望根據特定條件返回所有匹配記錄。本文將談論如何 vlookup 並垂直、水平或進入單一單元格返回所有匹配值。
  • Vlookup 並從下拉列表返回多個值
  • 在 Excel 中,如何能夠 vlookup 並從下拉列表返回多個相應值,這意味著當你從下拉列表中選擇一個項目時,所有相關值都會立即顯示。本文將逐步介紹解決方案。

最佳 Office 辦公效率工具

🤖 Kutools AI Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions
熱門功能查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入...
高級 LOOKUP多條件查找|多值查找|多表查找|模糊查找...
高級下拉列表快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ...
列管理器添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ...
精選功能網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)...
前15 大工具集12 款文本工具添加文本刪除特定字符,...)|50+ 種圖表 類型甘特圖,...)|40+ 實用 公式基於生日計算年齡,...)|19 款插入工具插入QR码按路徑插入圖片,...)|12 款轉換工具金額轉大寫匯率轉換,...)|7 款合併和分割工具高級合併行分割儲存格,...)| ...以及更多
使用 Kutools 支援你的語言——支援英語、西班牙語、德語、法語、中文及40 多種語言!

利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...


Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆

  • 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
  • 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
  • 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!