Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在 Excel 中比較兩個儲存格中的逗號分隔值並返回重複或唯一值?

Author: Siluvia Last Modified: 2025-08-23

如下方截圖所示,有兩列——列1和列2,每列中的每個儲存格都包含以逗號分隔的數字。要將列1中的逗號分隔數字與列2中同一行的儲存格內容進行比較,並返回所有重複或唯一的值,該怎麼辦呢?

本教程提供了兩種方法來幫助您完成此任務。

compare comma separated values in two cells


使用公式比較兩個儲存格中的逗號分隔值並返回重複或唯一值

本節提供了兩個公式,幫助比較兩個儲存格中的逗號分隔值並返回它們之間的重複或唯一值。

注意:以下公式僅適用於 Excel for 365。如果您使用的是其他版本的 Excel ,請嘗試使用下面的 VBA 方法

以上述兩列為例,要將列1中的逗號分隔數字與列2中同一行的逗號分隔數字進行比較並返回重複或唯一值,請按照以下步驟操作。

sample data

返回重複值

1. 選擇一個儲存格以輸出兩個指定儲存格之間的重複數字(這些儲存格包含逗號分隔的數字),在此情況下,我選擇了 D2 儲存格,然後輸入以下公式並按下 Enter 鍵。選擇公式儲存格並向下拖動其 自動填充控制柄,以獲取其他行中儲存格之間的重複數字。

=LET(x, TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),y,UNIQUE(x),z,UNIQUE(x,,1), TEXTJOIN(", ",TRUE,IF(ISERROR(MATCH(y,z,0)),y, "")))

 compare to return duplicate values

返回唯一值

要返回同一行中兩個指定儲存格之間的唯一數字(這些儲存格包含逗號分隔的數字),以下公式可以提供幫助。

1. 選擇一個儲存格以輸出唯一數字,在此情況下,我選擇了 E2 儲存格,然後輸入以下公式並按下 Enter 鍵。選擇公式儲存格並向下拖動其 自動填充控制柄,以獲取其他行中儲存格之間的唯一數字。

=TEXTJOIN(", ",TRUE,UNIQUE(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ",TRUE,A2:B2), ", ")),,1))

compare to return unique values

注意:

1) 上述兩個公式只能應用於 Excel for 365。如果您使用的不是 Excel for 365 的版本,請嘗試以下 VBA 方法。
2) 要比較的儲存格必須在同一行或同一列中彼此相鄰。
a screenshot of kutools for excel ai

使用 Kutools AI 解鎖 Excel 的魔法

  • 智能執行:執行單元格操作、分析數據並創建圖表——所有這些都由簡單的指令驅動。
  • 自訂公式:生成量身定制的公式,簡化您的工作流程。
  • VBA 編碼:輕鬆編寫和實現 VBA 代碼。
  • 公式解釋:輕鬆理解複雜的公式。
  • 文本翻譯:打破電子表格中的語言障礙。
通過人工智能工具增強您的 Excel 能力。立即下載,體驗前所未有的效率!

使用 VBA 比較兩個帶有逗號分隔值的列並返回重複或唯一值

本節提供的自定義函數可幫助比較兩個指定儲存格中的逗號分隔值並返回它們之間的重複值或唯一值。請按照以下步驟操作。

以上述相同的例子為例,要將列1中的逗號分隔數字與列2中同一行的逗號分隔數字進行比較並返回重複或唯一值,請嘗試本節中的自定義函數。

 sample data

1. 在打開的工作簿中,按 Alt + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2. 在 Microsoft Visual Basic for Applications 窗口中,點擊 插入 > 模組,並將以下 VBA 代碼複製到模組(代碼)窗口中。

 copy anf paste the code into the module

VBA 代碼:比較兩個儲存格中的逗號分隔值並返回重複/唯一值

Private Function COMPARE(Rng1, Rng2 As Range, Op As Boolean)
'Updated by Extendoffice 20221019
    Dim R1Arr As Variant
    Dim R2Arr As Variant
    Dim Ans1 As String
    Dim Ans2 As String
    Dim Separator As String
    Dim d1 As New Dictionary
    Dim d2 As New Dictionary
    Dim d3 As New Dictionary
    Application.Volatile

    Separator = ", "
    
    R1Arr = Split(Rng1.Value, Separator)
    R2Arr = Split(Rng2.Value, Separator)
    
    Ans1 = ""
    Ans2 = ""
    
    For Each ch In R2Arr
        If Not d2.Exists(ch) Then
            d2.Add ch, "1"
        End If
    Next
    
    If Op Then
        For Each ch In R1Arr
            If d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans1 = Ans1 & ch & Separator
                End If
            End If
        Next
        If Ans1 <> "" Then
            Ans1 = Mid(Ans1, 1, Len(Ans1) - Len(Separator))
        End If
        COMPARE = Ans1
    Else
        For Each ch In R1Arr
            If Not d1.Exists(ch) Then
                d1.Add ch, "1"
            End If
        Next
        
        For Each ch In R1Arr
            If Not d2.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        For Each ch In R2Arr
            If Not d1.Exists(ch) Then
                If Not d3.Exists(ch) Then
                    d3.Add ch, "1"
                    Ans2 = Ans2 & ch & Separator
                End If
            End If
        Next
        If Ans2 <> "" Then
            Ans2 = Mid(Ans2, 1, Len(Ans2) - Len(Separator))
        End If
        COMPARE = Ans2
    End If

End Function

3. 將代碼粘貼到模組(代碼)窗口後,轉到點擊工具 > 引用 以打開引用 - VBAProject 窗口,勾選Microsoft Scripting Runtime 選項,然後點擊確定 按鈕。

 click Tools > References and check Microsoft Scripting Runtime box

4. 按 Alt + Q 鍵關閉 Microsoft Visual Basic for Applications 窗口。

5. 現在,您需要分別應用兩個函數來從兩個逗號分隔值的儲存格中返回重複和唯一值。

返回重複值

選擇一個儲存格以輸出重複數字,在此示例中,我選擇了 D2 儲存格,然後輸入以下公式並按下 Enter 鍵以獲取 A2 和 B2 儲存格之間的重複數字。

選擇公式儲存格並向下拖動其自動填充控制柄,以獲取其他行中儲存格之間的重複數字。

=COMPARE(A2,B2,TRUE)

 use formula to return duplicate value

返回唯一值

選擇一個儲存格以輸出唯一數字,在此示例中,我選擇了 E2 儲存格,然後輸入以下公式並按下 Enter 鍵以獲取 A2 和 B2 儲存格之間的唯一數字。

選擇公式儲存格並向下拖動其自動填充控制柄,以獲取其他行中儲存格之間的唯一數字。

=COMPARE(A2,B2,FALSE)

 use formula to return unique value

最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
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%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用