Skip to main content

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

Author: Siluvia Last Modified: 2025-05-12

如下方截圖所示,有兩列——列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

最佳辦公效率工具

🤖 Kutools AI 助手:基於智能執行方式革新數據分析:智能執行   |  生成代碼  |  創建自訂公式  |  分析數據並生成圖表  |  調用 Kutools 函數
熱門功能查找、標記重複值或識別重複項   |  刪除空行   |  合併列或單元格而不丟失數據   |   四捨五入無需公式 ...
高級 LOOKUP多條件 VLookup    多值 VLookup  |   多表查找   |   模糊查找 ....
高級下拉列表快速創建下拉列表   |  依賴下拉列表   |  多選下拉列表 ....
列管理器添加特定數量的列  |  移動列  |  切換隱藏列的可見狀態  |  比較區域和列 ...
特色功能網格聚焦   |  設計檢視   |   增強編輯欄    工作簿與工作表管理器   |  資源庫(自動文本)   |  日期提取器   |  合併資料   |  加密/解密儲存格    按列表發送電子郵件   |  超級篩選   |   特殊篩選(篩選粗體/斜體/刪除線...) ...
頂級 15 種工具集12 個文本工具添加文本刪除特定字符、...)   |   50+ 圖表 類型甘特圖、...)   |   40+ 實用 公式基於生日計算年齡、...)   |   19 個插入工具插入QR碼根據路徑插入圖片、...)   |   12 個轉換工具金額轉大寫匯率轉換、...)   |   7 個合併與分割工具高級合併行分割儲存格、...)   |   ... 還有更多

使用 Kutools for Excel 提升您的 Excel 技巧,體驗前所未有的高效。 Kutools for Excel 提供超過 300 種高級功能來提高生產力並節省時間。  點擊這裡獲取您最需要的功能...


Office Tab 將標籤式界面帶到 Office,讓您的工作更加輕鬆

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
  • 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
  • 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!