Skip to main content

如何從 Excel 的多個列中提取唯一值?

Author: Xiaoyang Last Modified: 2025-05-12
A screenshot of an Excel dataset containing multiple columns with some repeated values

假設您有多個包含多個值的列,其中一些值在同一列內或不同列之間重複。現在,您需要找出在所有列中唯一的值。是否有快速的方法可以從 Excel 的多列中提取這些唯一值?讓我們來探索一些高效的解決方案。


使用公式從多列中提取唯一值

本節將介紹兩個公式:一個是適用於所有 Excel 版本的陣列公式,另一個是專門用於 Excel 365 的動態陣列公式。

使用適用於所有 Excel 版本的陣列公式從多列中提取唯一值

對於任何版本的 Excel 使用者來說,陣列公式是從多列中提取唯一值的強大工具。以下是具體操作方法:

1. 假設您的數據範圍為 A2:C9,請在單元格 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 表示包含要使用的單元格的列。請根據實際情況進行調整。

A screenshot showing how to use an array formula to extract unique values in Excel

2. 然後同時按下 Shift + Ctrl + Enter 鍵,然後拖動填充柄以提取唯一值,直到出現空白單元格。請參見截圖:

A screenshot showing unique values extracted using the array formula in Excel

此公式的解釋:
  1. $A$2:$C$9:這指定了要檢查的數據範圍,即從 A2 到 C9 的單元格。
  2. 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 判斷這些單元格的值是否尚未在 E1 到 E1 的範圍內列出。
    • 如果兩個條件都滿足(即該值不為空且尚未在 E 列中列出),則 IF 函數會根據其行和列計算出一個唯一的數字(ROW($2:$9)*100+COLUMN($A:$C))。
    • 如果條件不滿足,函數將返回一個大數字(7^8),作為佔位符。
  3. MIN(...):找到由上述 IF 函數返回的最小數字,對應於下一個唯一值的位置。
  4. TEXT(...,"R0C00"):將這個最小數字轉換為 R1C1 格式的地址。格式代碼 R0C00 表示將數字轉換為 Excel 單元格引用格式。
  5. INDIRECT(...):使用 INDIRECT 函數將上一步生成的 R1C1 格式地址轉換回普通的 A1 格式單元格引用。INDIRECT 函數允許基於文本字符串的內容進行單元格引用。
  6. &"":在公式的末尾附加 &"" 確保最終輸出被視為文本,因此即使是數字也會顯示為文本。
 
使用適用於 Excel 365、Excel 2021 及更新版本的公式從多列中提取唯一值

Excel 365、Excel 2021 及更新版本支持動態陣列,使得從多列中提取唯一值變得更加容易:

請在希望放置結果的空白單元格中輸入或複製以下公式,然後按 Enter 鍵即可一次性獲取所有唯一值。請參見截圖:

=UNIQUE(TOCOL(A2:C9,1))

A screenshot showing the UNIQUE function in Excel extracting unique values from multiple columns


使用 Kutools AI 助手從多列中提取唯一值

釋放「Kutools AI 助手」的力量,輕鬆地從 Excel 的多列中提取唯一值。只需點擊幾下,這個智能工具就能篩選您的數據,識別並列出所選範圍內的所有唯一條目。忘記複雜的公式或 VBA 程式碼的麻煩;擁抱「Kutools AI 助手」的高效性,將您的 Excel 工作流程轉變為更高效且無錯誤的體驗。

注意:要使用 Kutools for Excel 的 Kutools AI 助手功能,請下載並安裝 Kutools for Excel

安裝 Kutools for Excel 後,請點擊「Kutools AI」>「AI 助手」以打開「Kutools AI 助手」面板:

  1. 在聊天框中輸入您的需求,然後點擊「發送」按鈕或按 Enter 鍵發送問題;
    "從範圍 A2:C9 中提取唯一值,忽略空白單元格,並將結果放在 E2 開始的位置:"
  2. 分析完成後,點擊「執行」按鈕運行。Kutools AI 助手將使用 AI 處理您的請求,並將結果直接返回到 Excel 中指定的單元格。

A GIF demonstrating how Kutools AI Aide extracts unique values from multiple columns in Excel

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

使用資料透視表從多列中提取唯一值

如果您熟悉資料透視表,可以通過以下步驟輕鬆地從多列中提取唯一值:

1. 首先,在數據左側插入一列新的空白列,在本例中,我將在原始數據旁邊插入 A 列。

A screenshot showing the addition of a blank column before using a Pivot Table in Excel

2. 點擊數據中的任意單元格,然後按下 "Alt+D" 鍵,再立即按下 "P" 鍵以打開「資料透視表及資料透視圖向導」,在向導第一步選擇「多重合併計算區域」,請參見截圖:

A screenshot of the PivotTable and PivotChart Wizard with 'Multiple consolidation ranges' selected

3. 然後點擊下一步按鈕,在向導第二步勾選「為我創建單一面板」選項,請參見截圖:

A screenshot showing 'Create a single page field for me' selected in the Pivot Table Wizard

4. 繼續點擊「下一步」按鈕,選擇包括左側新列的數據範圍,然後點擊「添加」按鈕將數據範圍添加到「所有範圍」列表框中,請參見截圖:

A screenshot of the Pivot Table Wizard with data range selection

5. 選擇數據範圍後,繼續點擊「下一步」,在向導第三步選擇您希望放置資料透視表報告的位置。

A screenshot showing where to place the Pivot Table report in Excel

6. 最後,點擊「完成」以完成向導,並在當前工作表中創建資料透視表。然後取消勾選「選擇要添加到報表的欄位」部分中的所有欄位,請參見截圖:

A screenshot of a created Pivot Table in Excel for unique value extraction

7. 然後勾選 Value 欄位或將 Value 拖到「行」標籤,這樣您就可以從多列中獲得唯一值,如下所示:

A screenshot showing unique values extracted using a Pivot Table in Excel


使用 VBA 程式碼從多列中提取唯一值

使用以下 VBA 程式碼,您也可以從多列中提取唯一值。

1. 按住「ALT + F11」鍵,打開「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 鍵運行程式碼,將彈出一個提示框提醒您選擇要使用的數據範圍。請參見截圖:

A screenshot of the VBA prompt for selecting a data range in Excel

4. 然後點擊確定,另一個提示框將出現讓您選擇放置結果的位置,請參見截圖:

A screenshot of the VBA prompt for selecting the output cell in Excel

5. 點擊確定關閉此對話框,所有唯一值將一次性提取出來。

A screenshot showing unique values extracted using VBA in Excel


更多相關文章:

  • 計算列表中唯一值和不同值的數量
  • 假設您有一長串值,其中有一些重複項目,現在您想計算唯一值(僅在列表中出現一次的值)或不同值(列表中的所有不同值,意味著唯一值 + 第一次重複值)的數量,如左側截圖所示。本文將討論如何在 Excel 中處理此任務。
  • 根據條件在 Excel 中提取唯一值
  • 假設,您有以下數據範圍,希望根據 A 列的特定條件列出 B 列中唯一的名稱,以獲得如下截圖所示的結果。如何在 Excel 中快速輕鬆地處理此任務?
  • 根據條件在 Excel 中求唯一值的總和
  • 例如,我有一個包含姓名和訂單列的數據範圍,現在要根據姓名列求訂單列中唯一值的總和,如下截圖所示。如何在 Excel 中快速輕鬆地解決此任務?

最佳辦公效率工具

🤖 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%,每天為您減少數百次鼠標點擊!