如何在 Excel 中找出三欄的共同值?
在 Excel 中處理資料時,經常需要比對清單以找出共用或重複的項目。雖然比較兩欄以找出共同值是常見任務,但在某些情況下,您需要找出同時出現在三個獨立欄位中的數值。例如,在整合問卷資料、合併銷售記錄,或分析多個清單之間的重複項目時,精準提取同時存在於三欄中的項目至關重要(如下方截圖所示)。本文將介紹幾種實用方法,協助您在 Excel 中高效且可靠地找出三欄的共同值——無論您偏好使用公式還是 VBA,都能輕鬆達成目標。

使用陣列公式找出三欄的共同值
若要找出並提取三欄中的共同值,可運用專門設計的陣列公式,精準搜尋同時出現在所有選定區域中的項目。當您在資料集中不希望依賴額外的 Excel 增益集或外部工具時,這種方法尤其實用。
將此陣列公式輸入至您希望顯示第一個共同值的空白儲存格中:
=LOOKUP("zzz",CHOOSE({1,2},"",INDEX(A$2:A$10,MATCH(0,COUNTIF(E$1:E1,A$2:A$10)+IF(IF(COUNTIF(B$2:B$8,A$2:A$10)>0,1,0)+IF(COUNTIF(C$2:C$9,A$2:A$10)>0,1,0)=2,0,1),0)))) 如何使用此陣列公式:
- 在將公式輸入至選定的儲存格後,請按下 Shift + Ctrl + Enter(不要只按 Enter)。Excel 會自動在公式前後加上大括號,表示這是一個陣列公式。
- 向下拖曳公式,直到出現空白儲存格為止。此操作將列出三個欄位的所有共同值,而空白儲存格則表示已無更多相符項目。

注意事項與參數說明:
- 如果您偏好使用其他陣列公式,以下這個公式同樣能傳回三個欄位中所有唯一的共同值:
同樣地,在輸入或貼上公式後,請記得按下 Shift + Ctrl + Enter。=INDEX($A$2:$A$10, MATCH(0, COUNTIF($E$1:E1, $A$2:$A$10)+IF(IF(COUNTIF($B$2:$B$8, $A$2:$A$10)>0,1,0)+IF(COUNTIF($C$2:$C$9, $A$2:$A$10)>0,1,0)=2,0,1),0)) - 這些公式中的說明:
- A2:A10、B2:B8 與 C2:C9 分別為您要比較的三個欄位所對應的區域。
- E1 指的是公式起始位置正上方的儲存格(用於排除邏輯)。請根據您的實際資料範圍與希望顯示結果的位置,調整儲存格參照。
- 這些方法適用於中等規模的資料集,但由於陣列公式計算負載較高,處理極大資料量時可能會變慢。
- 請務必避免在過程中調整來源區域,以免造成結果不準確或公式錯誤。
- 若結果中出現空白列,表示所有共同值皆已提取完畢,其餘儲存格已無交集。

透過 KUTOOLS AI 解鎖 Excel 的神奇功能
- 智慧執行:透過簡易指令,輕鬆執行儲存格操作、分析資料,並建立圖表!
- 自訂公式:打造專屬公式,讓您的工作流程更順暢!
- VBA 編碼:輕鬆撰寫並套用 VBA 程式碼,立即提升工作效率!
- 公式解析:輕鬆掌握複雜公式!
- 文字翻譯:輕鬆打破試算表中的語言隔閡!
使用 VBA 巨集提取同時存在於三欄中的值
如果您偏好自動化操作,無需手動輸入或複製繁瑣公式,可運用 Excel VBA 逐一檢查資料,並僅輸出同時存在於三欄中的值。此方法尤其適合處理龐大資料集或動態範圍,因為 VBA 在執行重複性任務與自訂條件判斷時效率更勝一籌。
1. 點擊開發人員 > Visual Basic,即可開啟 VBA 編輯器(若)開發人員選項卡未顯示,可透過檔案 > 選項 > 自訂功能區啟用)。
2. 在 VBA 編輯器中,點擊插入 > 模組,即可建立新模組。接著,將下方程式碼貼到模組視窗中:
Sub FindCommonValuesThreeColumns()
Dim dict1 As Object
Dim dict2 As Object
Dim dict3 As Object
Dim resultDict As Object
Dim rngA As Range
Dim rngB As Range
Dim rngC As Range
Dim cell As Range
Dim outputRow As Long
Dim key As Variant
On Error Resume Next
Set dict1 = CreateObject("Scripting.Dictionary")
Set dict2 = CreateObject("Scripting.Dictionary")
Set dict3 = CreateObject("Scripting.Dictionary")
Set resultDict = CreateObject("Scripting.Dictionary")
' Prompt the user to select the three column ranges
Set rngA = Application.InputBox("Select the first column range", "KutoolsforExcel", Selection.Address, Type:=8)
Set rngB = Application.InputBox("Select the second column range", "KutoolsforExcel", Selection.Address, Type:=8)
Set rngC = Application.InputBox("Select the third column range", "KutoolsforExcel", Selection.Address, Type:=8)
' Store all unique values from each column into corresponding dictionaries
For Each cell In rngA
If Not dict1.exists(cell.Value) And cell.Value <> "" Then
dict1.Add cell.Value, 1
End If
Next
For Each cell In rngB
If Not dict2.exists(cell.Value) And cell.Value <> "" Then
dict2.Add cell.Value, 1
End If
Next
For Each cell In rngC
If Not dict3.exists(cell.Value) And cell.Value <> "" Then
dict3.Add cell.Value, 1
End If
Next
' Check which values exist in all three dictionaries
For Each key In dict1.keys
If dict2.exists(key) And dict3.exists(key) Then
resultDict.Add key, 1
End If
Next
' Output result to next empty column on the active sheet
outputRow = 1
For Each key In resultDict.keys
Cells(outputRow, Columns.Count).End(xlToLeft).Offset(0, 1).Value = key
outputRow = outputRow + 1
Next
MsgBox "Common values extracted next to your data.", vbInformation, "KutoolsforExcel"
End Sub 3. 在 VBA 視窗中選取該模組後,按下 F5 或點擊執行(▶)按鈕來執行程式碼。系統將依序提示您選取要比較的三個欄位範圍,請於每次提示時,以滑鼠框選對應的儲存格。
4. 巨集將處理您的選擇,並將同時出現在三欄中的所有值,從第一列開始填入至目前資料集右側的下一個空白欄位。
此方法在處理大型或動態資料集時極具效率,只需複製字典邏輯,即可輕鬆擴充至四欄或更多欄位。執行巨集前,務必先儲存活頁簿,因為一旦執行,所有未儲存的變更將無法復原。
最佳 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 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用