跳到主要內容
 

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

新增一名作者 最後修改時間:2024-11-12

如下圖所示,有兩列 - Column1 和 Column2,列中的每個單元格都包含逗號分隔的數字。 要將 Column1 中的逗號分隔數字與 Column2 同一行中的單元格內容進行比較並返回所有重複值或唯一值,您可以做什麼?

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

比較兩個單元格中的逗號分隔值


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

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

備註:以下公式僅適用於 Excel 365. 如果您使用的是其他版本的 Excel, 嘗試使用下面的 VBA 方法.

以上面兩列為例,要將Column1中的逗號分隔數字與Column2同一行中的逗號分隔數字進行比較,並返回重複值或唯一值,請執行以下操作。

樣本數據

返回重複值

1.選擇一個單元格輸出兩個指定單元格之間的重複數字,以逗號分隔數字,在這種情況下,我選擇單元格D2,然後輸入下面的公式並按 Enter 鑰匙。 選擇公式單元格並拖動它的 自動填充句柄 down 以獲取其他行中單元格之間的重複數字。

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

比較回傳重複值

返回唯一值

要返回同一行中以逗號分隔的數字的兩個指定單元格之間的唯一數字,以下公式可以提供幫助。

1.選擇一個單元格輸出唯一數字,在這種情況下,我選擇單元格E2,然後輸入下面的公式並按 Enter 鑰匙。 選擇公式單元格並拖動它的 自動填充句柄 down 以獲取其他行中單元格之間的唯一數字。

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

比較以傳回唯一值

筆記:

1)以上兩個公式只能在Excel for 365中應用,如果你使用的Excel不是365版本的Excel,請嘗試下面的VBA方法。
2)要比較的單元格必須在同一行或同一列中彼此相鄰。
kutools for excel ai 的螢幕截圖

使用 Kutools AI 解鎖 Excel 魔法

  • 智慧執行:執行單元格操作、分析資料並建立圖表 - 所有這些都由簡單的命令驅動。
  • 自定義公式:產生客製化公式以簡化您的工作流程。
  • VBA編碼:輕鬆編寫和實作 VBA 程式碼。
  • 公式解讀:輕鬆理解複雜的公式。
  • 文字翻譯:打破電子表格中的語言障礙。
使用 AI 支援的工具增強您的 Excel 功能。 立即下載 並體驗前所未有的效率!

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

本節中提供的用戶定義函數有助於比較兩個指定單元格中的逗號分隔值,並返回它們之間的重複值或唯一值。 請按如下方式操作。

同樣以上面的例子為例,要將 Column1 中的逗號分隔數字與 Column2 同一行中的逗號分隔數字進行比較並返回重複值或唯一值,請嘗試本節中的用戶定義函數。

樣本數據

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

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

將程式碼複製並貼上到模組中

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腳本運行時 框,然後單擊 OK 按鈕。

按一下「工具」>「參考」並勾選「Microsoft 腳本執行時間」框

4。 按 其他 + Q 關閉鍵 Microsoft Visual Basic for Applications 窗口。

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

返回重複值

選擇一個單元格輸出重複的數字,在這個例子中,我選擇單元格D2,然後輸入下面的公式並按 Enter 鍵獲取單元格 A2 和 B2 之間的重複數字。

選擇公式單元格並向下拖動其自動填充手柄以獲取其他行中單元格之間的重複數字。

=COMPARE(A2,B2,TRUE)

使用公式傳回重複值

返回唯一值

選擇一個單元格輸出唯一數字,在這個例子中,我選擇單元格E2,然後輸入下面的公式並按 Enter 獲取單元格 A2 和 B2 之間的唯一數字的鍵。

選擇公式單元格並向下拖動其自動填充句柄以獲取其他行中單元格之間的唯一數字。

=COMPARE(A2,B2,FALSE)

使用公式傳回唯一值

最佳辦公生產力工具

🤖 Kutools 人工智慧助手:基於以下內容徹底改變數據分析: 智慧執行   |  生成代碼  |  建立自訂公式  |  分析數據並產生圖表  |  呼叫 Kutools 函數...
熱門特色: 尋找、突出顯示或識別重複項   |  刪除空白行   |  合併列或儲存格而不遺失數據   |   沒有公式的回合 ...
超級查詢: 多條件VLookup    多值VLookup  |   跨多個工作表的 VLookup   |   模糊查詢 ....
高級下拉列表: 快速建立下拉列表   |  依賴下拉列表   |  多選下拉列表 ....
欄目經理: 新增特定數量的列  |  移動列  |  切換隱藏列的可見性狀態  |  比較範圍和列 ...
特色功能: 網格焦點   |  設計圖   |   大方程式酒吧    工作簿和工作表管理器   |  會員專區 (自動文字)   |  日期選擇器   |  合併工作表   |  加密/解密單元格    按清單發送電子郵件   |  超級濾鏡   |   特殊過濾器 (過濾粗體/斜體/刪除線...)...
前 15 個工具集12 文本 工具 (添加文本, 刪除字符,...)   |   50+ 圖表 類型 (甘特圖,...)   |   40+ 實用 公式 (根據生日計算年齡,...)   |   19 插入 工具 (插入二維碼, 從路徑插入圖片,...)   |   12 轉化 工具 (數字到單詞, 貨幣兌換,...)   |   7 合併與拆分 工具 (高級合併行, 分裂細胞,...)   |   ... 和更多

使用 Kutools for Excel 增強您的 Excel 技能,體驗前所未有的效率。 Kutools for Excel 提供了 300 多種進階功能來提高生產力並節省時間。  點擊此處獲取您最需要的功能...


Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!