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

如何在 Excel 中串接唯一值?

作者Xiaoyang修改日期

處理試算表時,經常需要將欄位中的唯一值進行合併(串接),或彙總唯一項目及其相關記錄。有效處理重複資料並呈現摘要資訊,不僅能讓資料更整潔,也能使報表更加清晰、富有洞察力。在 Excel 中,有多種實用方法可達成這些目標,從內建函數到進階增益集,甚至自訂程式碼皆可運用。本教學將詳細介紹多種串接唯一值,以及列出唯一項目與其相關資料的方法,涵蓋不同 Excel 版本與使用者偏好,協助您選出最適合自身需求的解決方案。

僅串接欄位中的唯一值

列出唯一值並串接對應值


僅串接欄位中的唯一值

在 Excel 數據分析中,一項常見任務是將欄位中的相異項目合併至單一儲存格。此操作特別適用於製作摘要報表、避免清單出現重複值,或為後續處理預先整理資料。所選方法取決於您使用的 Excel 版本、資料集規模,以及對公式或程式碼的熟悉程度。以下針對不同需求提供實用解決方案,並標註各項注意事項與技巧,確保您順利完成操作。

方法 1:使用 TEXTJOIN 與 UNIQUE 函數

對 Excel 365 與 Excel 2021 使用者來說,TEXTJOIN 與 UNIQUE 函數的推出,讓從欄位中串接唯一值變得更加簡單且靈活。

當您的資料欄位連續,且希望快速將所有唯一項目以指定分隔符號合併至單一儲存格時,此解決方案堪稱理想之選。它能自動排除重複項目、便於稽核,並讓您隨時調整範圍或更換分隔符號。但請注意,此方法僅適用於最新版 Excel;舊版 Excel 不支援 UNIQUE 函數。

在您希望顯示結果的儲存格中,輸入下列公式(假設您的資料位於 A2:A18):

=TEXTJOIN(", ", TRUE, UNIQUE(A2:A18))

套用 TEXTJOIN 和 UNIQUE 函數來串連唯一值

公式說明:
  • UNIQUE(A2:A18) 會篩除重複項目,僅從範圍 A2:A18 中傳回唯一值。
  • TEXTJOIN(", ", TRUE, ...)這些唯一值將被合併(串接)至單一儲存格,並以逗號與空格分隔;TRUE 引數確保在串接過程中忽略所有空白儲存格。

實用提示與疑難排解:

  • 請確認您的 Excel 版本支援 UNIQUE 與 TEXTJOIN 函數。若出現 #NAME?錯誤,表示您可能正在使用舊版 Excel。
  • TEXTJOIN 中使用的分隔符號可依需求變更為任何字元,例如「;」或「|」。
  • 當您在原始範圍中新增或刪除資料時,公式將自動更新。
  • 為避免意外產生多餘的空格或分隔符號,請仔細檢查公式中用於分隔的參數。

方法 2:使用 KUTOOLS AI 助手

當您需要一種更快、完全自動化的方式來串接唯一值(無需撰寫公式)時,Kutools for Excel 的「AI 助手」工具正是為各級使用者量身打造的實用解決方案。若您不熟悉 Excel 進階公式,或資料經常變動而需反覆執行相同任務,此方法將特別有幫助。

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

安裝 Kutools for Excel 後,點擊 「Kutools」>「AI 助手」,即可開啟「KUTOOLS AI 助手」窗格。

  1. 選取包含您要合併至單一儲存格之值的儲存格,並確保所選範圍完全符合您的資料需求。
  2. 在聊天框中描述您的需求。例如,您可以輸入:
    從選取區域中提取唯一值,以逗號串接後放入 C2 儲存格
  3. 按下 Enter 鍵,或點擊「傳送」按鈕。AI 將分析您的請求,處理完成後,請點選「執行」讓 Kutools 執行該操作,結果將依所述方式傳回。

注意事項與提示:

  • 請確認您使用的是最新版 Kutools,以完整體驗所有 AI 功能。
  • 為獲得最佳效果,請在文字指令中明確指定分隔符號與目標儲存格。
  • KUTOOLS AI 特別適合處理大型資料範圍,或需在多組資料集中反覆執行的工作流程。

方法 3:使用使用者自訂函數

對於需要更高彈性、自訂分隔符號,或希望在多個活頁簿中重複使用的使用者來說,透過 VBA 撰寫使用者自訂函數(UDF)是自動串接唯一值的高效方法。此 VBA 解決方案相容於所有 Excel 版本,且不受新函數是否可用的限制。

  • 請務必啟用活頁簿中的巨集功能。
  • 若日後仍需使用此 VBA 程式碼,請將檔案另存為「啟用巨集」格式(.xlsm)。
  • 建議您在執行新程式碼前,定期備份活頁簿。

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

2. 在 VBA 視窗中,按一下插入 > 模組,然後複製並貼上下列程式碼:

VBA 程式碼:將唯一值串接至單一儲存格:

Function ConcatUniq(xRg As Range, xChar As String) As String
'updateby Extendoffice
    Dim xCell As Range
    Dim xDic As Object
    Set xDic = CreateObject("Scripting.Dictionary")
    For Each xCell In xRg
        xDic(xCell.Value) = Empty
    Next
    ConcatUniq = Join$(xDic.Keys, xChar)
    Set xDic = Nothing
End Function

3. 返回您的工作表,在空白儲存格(例如 C2)中輸入下列公式:

=ConcatUniq(A2:A18,",")

按下 Enter 以確認。該儲存格將顯示來自限定區域的所有唯一值,並以逗號分隔。

使用 VBA 程式碼串連唯一值

  • 若您的範圍不同,請相應調整 A2:A18.
  • 若需使用其他分隔符號,請將公式中的“,“替換為您偏好的符號(例如)“;“|)。
  • 若出現 #NAME?錯誤,請確認已啟用巨集,且 UDF 名稱完全一致。

提示:若要在其他活頁簿中重複使用此函數,請務必將 VBA 程式碼一併複製至對應的模組中。


方法 4:使用進階 Excel 公式(替代解決方案)

在無法使用 UNIQUE 函數的環境中(例如 Excel 2016 或 Excel 2019),您仍可透過結合傳統的 IFCOUNTIFTEXTJOIN 函數,建立陣列公式來串接唯一值。此方法雖可行,但因計算負擔較大,最適合用於小型資料集。

1. 在目標儲存格(例如 C2)中輸入下列陣列公式(輸入後,請按 )Ctrl+Shift+Enter,而非僅按 Enter):

=TEXTJOIN(", ", TRUE, IF(MATCH(A2:A18, A2:A18,0) = ROW(A2:A18) - MIN(ROW(A2:A18)) +1, A2:A18, ""))

2. 若您看到公式兩側出現大括號{},即表示已正確輸入為陣列公式。此公式將從範圍 A2:A18 傳回以逗號分隔的串接唯一值。

注意:此方法需您調整範圍以符合自身資料。若範圍過大,計算時間可能隨之增加。若您不熟悉陣列公式,建議優先考慮上述的 VBA 或增益集解決方案!


列出唯一值並串接對應值

在資料報表中,您往往不僅需要從單一欄位提取唯一值,還希望同時彙總或串接另一欄位中的對應項目。例如,整合每位業務員所銷售的所有產品,或彙整與相同 ID 相關的所有記錄。選擇最適合的方法,取決於您的資料複雜度,以及自動化、易用性或相容性何者為優先考量。

方法 1:使用 TEXTJOIN 與 UNIQUE 函數

當您在使用 Excel 365 或 Excel 2021 時,可結合 UNIQUE、FILTER 與 TEXTJOIN 函數,打造穩健且完全由公式驅動的解決方案。此方法特別適合用於資料彙總,尤其當單一值對應多筆記錄,而您希望取得以分隔符號串接的相關記錄清單時。

1. 在空白欄位中輸入下列公式,即可列出 A 欄中的所有唯一值:

=UNIQUE(A2:A17)

使用公式列出唯一值

2. 現在,若要針對每個唯一值串接 B 欄中的對應值,請在唯一值旁邊的下一欄(例如,若唯一值從 D2 開始,則在 E2)輸入下列公式,並視需要向下拖曳填滿:

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

使用公式列出唯一值並串連對應的值

公式說明:
  • UNIQUE(A2:A17) 將從 A 欄建立唯一項目的陣列。
  • FILTER(B2:B17, A2:A17 = D2) 會針對 D2 中的每個唯一值,產生一個陣列,其中包含 B 欄所有對應的值。
  • TEXTJOIN(", ", TRUE, ...)這些對應值將以逗號分隔並串接在一起。
  • 若需使用其他分隔符號,請相應修改 TEXTJOIN 中的", "
  • 為避免錯誤,請確保公式中的範圍長度一致,並確認 FILTER 函數在找不到相符項目時不會傳回錯誤。
  • 此方法能在資料變更時自動更新結果,非常適合用於動態摘要表格。

方法 2:使用 Kutools for Excel

Kutools for Excel 提供專為此用途打造的「高級合併行」工具,能根據唯一值自動分組資料,並以您指定的分隔符號合併對應內容。此功能特別適合偏好直覺化操作、不熟悉公式或程式碼的使用者;在處理大型資料集,或需頻繁重新分組(例如定期報表製作或持續性資料維護)時,更能發揮其實用價值。

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

進行變更前,建議先將原始資料備份至其他位置。接著請依照下列步驟操作:

  • 選取您想要整理的資料範圍。
  • 前往 「Kutools」>「合併和拆分」>「高級合併行」,如下圖所示:
    點擊 Kutools 的「進階合併列」功能
  • 在開啟的對話方塊中:
    • 選取要合併重複項的欄位,並在「操作」欄位中將其設為「主鍵」。
    • 選擇您希望彙總的欄位(也就是要串接的值),並在「操作」下方的下拉式選單中指定偏好的分隔符號。
    • 點擊確定即可執行。
    在對話框中指定選項

結果:

Kutools 將依您的設定重新整理資料,提取唯一項目並串接所有相關值。
使用 Kutools 列出唯一值並串連對應的值

  • 若操作有誤,可使用 Excel 的「復原」功能(Ctrl+Z)立即還原。
  • 此程式適用於包含數百甚至數千筆記錄的資料集,並支援多種分隔符號。

方法 3:使用 VBA 程式碼

運用 VBA 指令碼,您能完全掌控資料的提取與彙總方式。此方法相容於所有 Excel 版本,特別適合用於自訂工作流程、自動化作業,或在 UNIQUE、FILTER 等函數無法使用時的情境。即使您的資料結構經常變動,這套 VBA 解決方案也能輕鬆調整,靈活應對。

若要使用下方程式碼,請依照下列步驟操作:

1. 按下 ALT + F11,立即開啟 VBA 編輯器!

2. 前往插入 > 模組,並將下列程式碼貼到開啟的模組視窗中:

VBA 程式碼:列出唯一值並串接對應資料

Sub test()
    'updateby Extendoffice
    Dim xRg As Range
    Dim xArr As Variant
    Dim xCell As Range
    Dim xTxt As String
    Dim I As Long
    Dim xDic As Object
    Dim xOutputRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the data range", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If xRg.Areas.Count > 1 Then
        MsgBox "Does not support multiple selections", , "Kutools for Excel"
        Exit Sub
    End If
    If xRg.Columns.Count <> 2 Then
        MsgBox "There must be only two columns in the selected range", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutputRg = Application.InputBox("Please select the output cell", "Kutools for Excel", Type:=8)
    If xOutputRg Is Nothing Then Exit Sub
    xArr = xRg
    Set xDic = CreateObject("Scripting.Dictionary")
    xDic.CompareMode = 1
    For I = 1 To UBound(xArr)
        If Not xDic.Exists(xArr(I, 1)) Then
            xDic.Item(xArr(I, 1)) = xDic.Count + 1
            xArr(xDic.Count, 1) = xArr(I, 1)
            xArr(xDic.Count, 2) = xArr(I, 2)
        Else
            xArr(xDic.Item(xArr(I, 1)), 2) = xArr(xDic.Item(xArr(I, 1)), 2) & "," & xArr(I, 2)
        End If
    Next
    xOutputRg.Resize(xDic.Count, 2).Value = xArr
End Sub

3. 按下 F5 以執行指令碼。系統將彈出視窗,要求您選取資料區域。請務必僅選取兩欄:第一欄為唯一值,第二欄為對應值。

VBA 程式碼以選取資料範圍

4. 點擊 OK 後,選取結果表格應開始填入的第一個儲存格。

VBA 程式碼以選取放置結果的儲存格

5. 點擊 OK 後,程式碼將產生一個僅包含唯一值及其對應串接資料的表格。

VBA 程式碼以列出唯一值並串連對應的值

  • 若出現欄數相關錯誤,請確認您的選取範圍僅包含兩欄。
  • 若需將分隔符號由逗號改為其他符號,請依需求調整程式碼中的這一行:xArr(xDic.Item(xArr(I,1)),2) = xArr(xDic.Item(xArr(I,1)),2) & "," & xArr(I,2)
  • 執行新的 VBA 指令碼前,務必先備份您的檔案。

總結而言,Excel 提供多種方法來串接唯一值並整合相關資料。現代 Excel 中的公式方法快速且具動態性,而 VBA 與 Kutools 解決方案則提供更廣泛的相容性與更高的掌控力。請務必根據您的資料量、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 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用