如何在 Excel 中串接唯一值?
處理試算表時,經常需要將欄位中的唯一值進行合併(串接),或彙總唯一項目及其相關記錄。有效處理重複資料並呈現摘要資訊,不僅能讓資料更整潔,也能使報表更加清晰、富有洞察力。在 Excel 中,有多種實用方法可達成這些目標,從內建函數到進階增益集,甚至自訂程式碼皆可運用。本教學將詳細介紹多種串接唯一值,以及列出唯一項目與其相關資料的方法,涵蓋不同 Excel 版本與使用者偏好,協助您選出最適合自身需求的解決方案。
僅串接欄位中的唯一值
在 Excel 數據分析中,一項常見任務是將欄位中的相異項目合併至單一儲存格。此操作特別適用於製作摘要報表、避免清單出現重複值,或為後續處理預先整理資料。所選方法取決於您使用的 Excel 版本、資料集規模,以及對公式或程式碼的熟悉程度。以下針對不同需求提供實用解決方案,並標註各項注意事項與技巧,確保您順利完成操作。
方法 1:使用 TEXTJOIN 與 UNIQUE 函數
對 Excel 365 與 Excel 2021 使用者來說,TEXTJOIN 與 UNIQUE 函數的推出,讓從欄位中串接唯一值變得更加簡單且靈活。
當您的資料欄位連續,且希望快速將所有唯一項目以指定分隔符號合併至單一儲存格時,此解決方案堪稱理想之選。它能自動排除重複項目、便於稽核,並讓您隨時調整範圍或更換分隔符號。但請注意,此方法僅適用於最新版 Excel;舊版 Excel 不支援 UNIQUE 函數。
在您希望顯示結果的儲存格中,輸入下列公式(假設您的資料位於 A2:A18):
=TEXTJOIN(", ", TRUE, UNIQUE(A2:A18)) 
- 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 後,點擊 「Kutools」>「AI 助手」,即可開啟「KUTOOLS AI 助手」窗格。
- 選取包含您要合併至單一儲存格之值的儲存格,並確保所選範圍完全符合您的資料需求。
- 在聊天框中描述您的需求。例如,您可以輸入:
從選取區域中提取唯一值,以逗號串接後放入 C2 儲存格 - 按下 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 以確認。該儲存格將顯示來自限定區域的所有唯一值,並以逗號分隔。

- 若您的範圍不同,請相應調整 A2:A18.
- 若需使用其他分隔符號,請將公式中的“,“替換為您偏好的符號(例如)“;“或|)。
- 若出現 #NAME?錯誤,請確認已啟用巨集,且 UDF 名稱完全一致。
提示:若要在其他活頁簿中重複使用此函數,請務必將 VBA 程式碼一併複製至對應的模組中。
方法 4:使用進階 Excel 公式(替代解決方案)
在無法使用 UNIQUE 函數的環境中(例如 Excel 2016 或 Excel 2019),您仍可透過結合傳統的 IF、COUNTIF 與 TEXTJOIN 函數,建立陣列公式來串接唯一值。此方法雖可行,但因計算負擔較大,最適合用於小型資料集。
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」>「合併和拆分」>「高級合併行」,如下圖所示:

- 在開啟的對話方塊中:
- 選取要合併重複項的欄位,並在「操作」欄位中將其設為「主鍵」。
- 選擇您希望彙總的欄位(也就是要串接的值),並在「操作」下方的下拉式選單中指定偏好的分隔符號。
- 點擊確定即可執行。

結果:
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 以執行指令碼。系統將彈出視窗,要求您選取資料區域。請務必僅選取兩欄:第一欄為唯一值,第二欄為對應值。

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

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

- 若出現欄數相關錯誤,請確認您的選取範圍僅包含兩欄。
- 若需將分隔符號由逗號改為其他符號,請依需求調整程式碼中的這一行:
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 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 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用

