如何在 Excel 中從多個欄位提取不重複的唯一值?

若您經常在 Excel 中處理分散於多個欄位的資料集,可能會發現某些值在同一欄位內或跨欄位重複出現。在許多報表製作與數據分析任務中,識別並提取所有唯一值——也就是在整個選取範圍內僅出現一次、不論位置為何的值——是至關重要的步驟。手動執行這項工作不僅耗時,還容易出錯,尤其在面對大型資料集或複雜表格時更是如此。所幸,Excel 提供了多種高效方法,能輕鬆幫您提取這些唯一值。
本指南根據您的 Excel 版本與個人偏好,提供多元解決方案:包括適用於所有版本的傳統公式、最新版本專屬的動態陣列公式、運用 KUTOOLS AI Aide 快速取得簡明結果、透過資料透視表實現直覺化整合,以及在複雜情境下以 VBA 程式碼自動提取所需資料。
使用公式從多個欄位中提取唯一值
有時您可能希望運用 Excel 內建函數來完成這項提取作業。本節詳細介紹兩種方法:一種是適用於所有 Excel 版本的陣列公式,另一種則是專為 Excel 365 與 Excel 2021 等新版 Excel 設計的動態陣列公式。當您需要純公式驅動的解決方案、要求資料變更時自動更新,或希望避免使用外部增益集與程式碼時,這些方法尤其理想。
使用適用於所有 Excel 版本的陣列公式,從多個欄位提取唯一值
為確保與所有 Excel 版本相容,即使您的 Excel 不支援動態陣列,也能透過陣列公式從多個欄位提取唯一值!此方法結合 INDIRECT、TEXT、MIN、IF、COUNTIF、ROW 與 COLUMN函數,靈活適用於各種資料結構,輕鬆掌握高效資料處理技巧!
假設您的資料位於範圍 A2:C9. 若要從儲存格 E2 開始提取唯一值,請依照下列步驟操作:
1. 點選儲存格 E2(或您清單起始位置的第一個儲存格),並輸入下列陣列公式:
=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""
- A2:C9是您要從中提取唯一值的資料範圍。
- E1:E1指的是第一個輸出儲存格正上方的儲存格,用於追蹤哪些項目已完成輸出。
- $2:$9是您資料的列參考;$A:$C是欄參考。請根據您的工作表版面配置調整這些參照。

2. 輸入公式後,請勿僅按 Enter,而應 同時按下 Ctrl + Shift + Enter,將其確認為陣列公式。操作正確時,公式列中的公式會自動被大括號 {} 包圍。接著,從 E2 向下拖曳填滿控點,直到出現空白儲存格為止,代表所有唯一值皆已提取完畢,確保目標欄位完整顯示所有結果。

- $A$2:$C$9:請指定要檢查唯一值的完整儲存格範圍。
- IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0), ROW($2:$9)*100+COLUMN($A:$C),7^8):
- $A$2:$C$9<>"" 請務必忽略空白儲存格。
- COUNTIF($E$1:E1,$A$2:$C$9)=0 確保僅包含全新的(尚未提取過的)值。
- 當兩個條件皆為真時,系統將根據儲存格所在的列與欄,自動計算出一個唯一的索引編號作為對應輸出。
- 若任一條件為假,公式會傳回一個極大的數字()7^8),避免誤選。
- MIN(...)找出最小的索引編號,以精準定位資料中下一個可用的唯一值位置。
- TEXT(...,"R0C00"):運用 R1C1 樣式,將索引轉換為有效的儲存格參照。
- INDIRECT(...):將上述建立的儲存格參照轉換為您數據區域中的實際值。
- &““強制將公式結果視為文字,確保格式絕不出現異常。
使用公式從多個欄位提取唯一值(適用於 Excel 365、Excel 2021 及更新版本)
若您使用 Excel 365、Excel 2021 或更新版本,即可運用動態陣列函數,以更簡潔直觀的方式從多個欄位提取唯一值。UNIQUE 與 TOCOL 函數能輕鬆快速地跨欄整合資料,並一次性消除重複項目,特別適合處理持續更新或大型資料集的使用者!
使用此方法時,只需選取一個空白儲存格(例如 )E2,或您希望結果出現的位置),輸入下列公式,然後按下 Enter:
=UNIQUE(TOCOL(A2:C9,1)) 按下 Enter 後,範圍 A2:C9 中的所有唯一值將自動「溢出」至公式下方的儲存格。此功能效率極高——當您的來源資料變更時,輸出結果會動態更新,省去手動重新整理的麻煩!

- TOCOL(A2:C9,1):將多欄資料範圍轉換為單一欄位,並自動排除空白儲存格。
- UNIQUE(...):僅提取每個值一次,提供乾淨無重複的清單。
使用 KUTOOLS AI 助手從多個欄中提取不重複值
如果您希望採用更簡便的方式並減少手動操作,KUTOOLS AI 助手在 Kutools for Excel 中能輕鬆幫您從多個欄位提取不重複值。當您不熟悉公式,或想避免公式錯誤的風險時,這種方法尤其實用。KUTOOLS AI 助手會自動解析您的指令並處理資料,無論是初學者還是追求快速解決方案的使用者,只需點擊幾下即可輕鬆完成。
安裝後,按一下 KUTOOLS AI>AI 助手 以開啟「KUTOOLS AI 助手」窗格:
- 在聊天框中輸入您的請求,例如:「從範圍 A2:C9 提取唯一值(忽略空白儲存格),並將結果從 E2 開始放置:」
- 點擊「傳送」或按下 Enter,待 AI 分析請求後,只需點擊「執行」即可立即執行,結果將即時顯示於您指定的工作表位置。
提示:當您的資料提取流程經常變動,或需要運用自然語言處理功能時,此解決方案格外實用。若原始資料格式不一致,請務必仔細檢查提取列表中的空白儲存格——根據您的 AI 請求細節,空白項目可能會被包含或過濾。

使用資料透視表從多個欄中提取不重複值
資料透視表是另一種便捷的提取不重複值方法,特別適合偏好使用視覺化工具、並希望對不重複項目進行摘要或進一步分析(例如計算出現次數)的使用者。此方法簡單直觀,無需輸入公式,但需完成若干設定步驟,並進行輕微的資料重整——尤其在欄位標題不一致時更為必要。
以下是使用資料透視表提取不重複值的建議步驟:
1. 立即在資料左側插入一個新的空白欄。例如,若您的資料從 B 欄開始,請插入新的 A 欄。此調整有助於確保範圍正確整合。

2. 選取資料集中的任意儲存格,按下 Alt + D,再迅速按下 P,即可啟動「樞紐分析表及樞紐圖表精靈」。在精靈的第一步驟中,選擇「多重合併範圍」,輕鬆將多個欄位的值合併至單一摘要欄位!

3. 按一下下一步,然後選擇「為我建立單一頁面欄位」。此步驟會將所有資料整合為單一群組,方便您輕鬆提取不重複值。

4. 在下一步中,選取整個資料區域(包含新插入的空白列),點擊新增按鈕,將選取範圍加入「所有範圍」清單,再點擊下一步。

5. 在精靈的最後一步,選擇資料透視表的放置位置(新工作表或現有工作表),然後按一下完成,立即產生資料透視表報表!

6. 在新的資料透視表中,取消勾選「選擇要新增至報表的欄位」區段中的所有欄位,即可清除預設檢視。

7. 最後,將「值」欄位拖曳至列區域,資料透視表便會以單一欄位整齊列出原始多欄範圍中的所有不重複值。

限制:資料需事先整理,且若源數據資料集更新,必須重新整理資料透視表才能顯示新的不重複值。
使用 VBA 程式碼從多個欄位中提取唯一值
當您在需要自動化提取作業,或處理大型且結構不規則的資料集時,使用 VBA(Visual Basic for Applications)程式碼能提供快速、可重複使用的解決方案。此方法特別適合熟悉 Excel VBA 編輯器基本操作的使用者,或需反覆執行此任務以減少手動介入的情境。相較於陣列公式,VBA 在處理大量資料時也更具效率。
1. 按下 Alt + F11 開啟 VBA 編輯器。在出現的「Microsoft Visual Basic for Applications」視窗中,點選插入> 模組,即可新增模組。
2. 在新模組中貼上以下程式碼:
VBA:從多個欄位提取不重複值
Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
If rng.Value <> "" Then
dt(rng.Value) = ""
End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub
3. 按下 F5 執行程式碼,系統將提示您選取資料區域,請務必選取所有相關欄位(包含含有空白儲存格的欄位)。

4. 按一下「確定」後,系統將再次提示您指定輸出不重複值的位置。請選取欲列出結果的儲存格上方位置(例如 )E2)。

5. 按一下「確定」,巨集將自動執行,所有不重複值將從您指定的位置開始顯示。

- 若使用公式時出現 #VALUE!或 #SPILL!等錯誤,請檢查您的範圍,並確保輸出區域為空白。
- 務必檢查您的數據區域是否包含隱藏的列或合併儲存格,因為這些都可能影響唯一值提取的準確性。
- 陣列與動態陣列公式會隨著資料變更自動更新,但「進階篩選」與資料透視表則可能需要手動重新整理或執行。
- 建議透過 VBA 自動化執行重複性任務的資料提取作業,以確保一致性並提升處理速度。
- 在執行任何大量提取或自動化程序前,務必先備份資料,尤其是在結構複雜的工作簿中。
更多相關文章:
- 計算清單中唯一值與相異值的數量
- 假設您有一長串包含部分重複項目的值清單,想要計算其中唯一值(僅出現一次的值)或所有相異值的總數,如左側截圖所示。本文將介紹在 Excel 中高效計算唯一值與相異值的方法。
- 在 Excel 中根據條件提取唯一值
- 假設您希望根據 A 欄的特定條件,僅從 B 欄提取唯一的姓名,並獲得如截圖所示的結果。本教學將示範如何在提取唯一值時套用條件。
- 僅允許在 Excel 中輸入唯一值
- 若您希望在工作表欄位中僅允許輸入唯一值,並防止重複資料出現,本文將介紹實用技巧,協助您在 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 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用