Distinct Count(唯一值計數)是計算某欄位中不重複值數量的方法,不會更動原始資料。 本文完整教學樞紐分析表、UNIQUE 公式、SUMPRODUCT、Power Query、DAX 共 5 種方法,含條件篩選公式、空白值處理與版本選擇對照表。
💡 版本速查:Excel 365 → 直接看方法二(UNIQUE 公式);Excel 2013-2021 → 看方法一(樞紐分析表)或方法三(SUMPRODUCT);Excel 2016+ 且資料量大 → 看方法四(Power Query);Excel 2010 以前 → 看方法三(傳統公式)。
Distinct Count 是什麼?與去重(Remove Duplicates)有何不同?
Distinct Count 是計算某一範圍內「不重複」的唯一值數量。例如,一份銷售記錄有 100 筆訂單,但實際下單的只有 80 位不同客戶,Distinct Count 的結果就是 80。
這個功能在日常工作中非常實用:你可能需要統計專案的獨立負責人數、某季度的不重複客戶數、倉庫中的產品種類數,或是活動的唯一申請人數。這些場景的共通點是:你要的不是「總共幾筆」,而是「有幾種不同的」。
很多人會把 Distinct Count 和「去重」搞混,但兩者的目的完全不同:
| 比較項目 | Distinct Count(唯一值計數) | 去重(Remove Duplicates) |
|---|---|---|
| 目的 | 計算不重複值的「數量」 | 刪除重複項,保留唯一值「清單」 |
| 是否改變原始資料 | ❌ 不改變 | ✅ 會刪除資料列 |
| 輸出結果 | 一個數字(例如 80) | 一份精簡後的清單 |
| 適用情境 | 報表統計、KPI 計算 | 資料清理、建立主檔 |
| 可否還原 | 不需要還原(資料沒變) | 刪除後無法還原(除非 Ctrl+Z) |
簡單來說:想知道「有幾種」→ 用 Distinct Count;想拿到「哪幾種」→ 用去重或 UNIQUE 函數取清單。如果你需要的是計算出現次數(例如每位客戶下了幾筆訂單),那是 COUNTIF 的工作,和 Distinct Count 是不同的需求。

方法一:樞紐分析表 Distinct Count(Excel 2013 以上)
樞紐分析表是最直觀的 Distinct Count 方法,特別適合需要產出報表、或不想寫複雜公式的使用者。但有一個關鍵前提:你必須啟用「資料模型」,否則樞紐分析表只會顯示一般的「計數」,而不是「唯一值計數」。
啟用資料模型(最常卡關的步驟)
這是 90% 的人找不到 Distinct Count 選項的原因。在插入樞紐分析表時,對話框底部有一個不太顯眼的勾選項:「新增此資料至資料模型」(Add this data to the Data Model)。
不同版本的介面位置略有差異:
- Excel 2013/2016:勾選框在「建立樞紐分析表」對話框的最下方
- Excel 2019/365:同樣位置,但部分版本會顯示為「使用此活頁簿的資料模型」
如果你已經建好樞紐分析表但忘了勾選,很遺憾,你需要刪除這個樞紐分析表,重新插入並勾選資料模型。沒有事後補救的方法。
完整操作步驟
步驟 1:選取你的資料範圍(確保第一列是標題列,例如 A1:B100)。
步驟 2:點選「插入」→「樞紐分析表」。在對話框中確認資料範圍正確,並勾選「新增此資料至資料模型」。選擇放置位置(建議選「新工作表」),按確定。
步驟 3:在樞紐分析表欄位清單中,將你要計算唯一值的欄位(例如「客戶名稱」)拖曳到「值」區域。
步驟 4:此時預設會顯示「計數」。點擊值區域中的欄位名稱,選擇「值欄位設定」→ 在「值彙總方式」中找到「相異計數」(Distinct Count)。這個選項只有在啟用資料模型後才會出現。
步驟 5:按確定,樞紐分析表就會顯示唯一值數量。
⚠️ 一般「計數」vs.「相異計數」的差異:假設客戶 A 出現 5 次,一般計數會算 5,相異計數只算 1。初學者常困惑為什麼樞紐分析表的數字和預期不同,通常就是因為用了一般計數而非相異計數。

多欄位組合唯一值計數
如果你需要計算「客戶 + 產品」的唯一組合數(例如:客戶 A 買了產品 X 和產品 Y,算 2 個組合),樞紐分析表無法直接對多欄位做 Distinct Count。
解決方法是新增一個輔助欄,用公式合併兩個欄位的值:
=A2&"-"&B2
例如 A 欄是負責人、B 欄是專案名稱,輔助欄會產生「王小明-網站改版」這樣的組合值。再對這個輔助欄做 Distinct Count,就能得到每位負責人管理的獨立專案數。
資料更新後如何重新整理
樞紐分析表不會自動更新。當原始資料有變動時:
- 資料內容變更(修改現有儲存格):在樞紐分析表上按右鍵 →「重新整理」即可
- 資料範圍擴大(新增了更多列):需要到「樞紐分析表分析」→「變更資料來源」,重新選取完整範圍。或者一開始就把資料轉為「表格」(Ctrl+T),這樣新增資料會自動納入範圍
方法二:UNIQUE 函數搭配 COUNTA(Excel 365 / Excel 2021)
如果你用的是 Excel 365 或 Excel 2021,UNIQUE 函數是最簡潔的做法——一行公式搞定,而且資料變動時會自動更新。這是學習Excel 函數時最值得優先掌握的現代公式之一。
基本語法與範例
=COUNTA(UNIQUE(A2:A100))
這個公式的邏輯分兩層:
1. UNIQUE(A2:A100) 先從 A2:A100 中取出不重複的值清單(輸出是一個動態陣列)
2. COUNTA(...) 再計算這個清單有幾個值(即唯一值數量)
如果你只用 UNIQUE(A2:A100),Excel 會在多個儲存格中展開一份唯一值清單。加上 COUNTA 後,結果只會是一個數字。
多欄位組合的唯一值計數也很直覺:
=COUNTA(UNIQUE(A2:A100&"-"&B2:B100))
這會計算 A 欄和 B 欄組合後的唯一值數量。
含條件的 Distinct Count(Count Distinct with Criteria)
這是實務中最常見的需求:「北區有幾位不同客戶?」「某產品線有幾種規格?」搭配 FILTER 函數就能實現條件篩選後的唯一值計數。
單一條件:統計北區的獨立客戶數
=COUNTA(UNIQUE(FILTER(A2:A100, B2:B100="北區")))
多條件(AND,同時滿足):統計北區且訂單金額大於 1000 的獨立客戶數
=COUNTA(UNIQUE(FILTER(A2:A100, (B2:B100="北區")*(C2:C100>1000))))
多條件(OR,滿足任一):統計北區或南區的獨立客戶數
=COUNTA(UNIQUE(FILTER(A2:A100, (B2:B100="北區")+(B2:B100="南區"))))
實務案例:假設你是銷售主管,手上有一份訂單記錄,A 欄是客戶名稱、B 欄是區域、C 欄是訂單金額。你想知道「北區今年有多少不同客戶下單」,只需要一行公式就能即時得到答案,而且新增訂單資料後數字會自動更新。

常見錯誤與排查
#NAME? 錯誤:你的 Excel 版本不支援 UNIQUE 函數。UNIQUE 是動態陣列函數,僅在 Excel 365 和 Excel 2021 中可用。Excel 2019 雖然有部分動態陣列支援,但 UNIQUE 的支援狀況不穩定。遇到這個錯誤,請改用方法三(SUMPRODUCT)。
#CALC! 錯誤:FILTER 條件沒有任何符合的資料。例如你篩選「東區」但資料中根本沒有東區的記錄。解決方法是加入 IFERROR:
=IFERROR(COUNTA(UNIQUE(FILTER(A2:A100, B2:B100="東區"))), 0)
如果你在使用Excel 公式時經常遇到錯誤,建議養成用 IFERROR 包裹的習慣,避免報表中出現醜陋的錯誤值。
方法三:SUMPRODUCT 傳統公式(所有 Excel 版本)
如果你的 Excel 版本不支援 UNIQUE,SUMPRODUCT 是相容性最高的替代方案。這個公式從 Excel 2003 就能用,幾乎所有版本都支援。代價是公式比較難理解,而且需要注意空白值的處理。
基本公式(單欄位)
標準版:
=SUMPRODUCT(1/COUNTIF(A2:A100,A2:A100))
公式邏輯:COUNTIF 會計算每個值在範圍中出現的次數,然後用 1 除以次數。例如「客戶 A」出現 3 次,每次的計算結果是 1/3,三個 1/3 加起來剛好等於 1。所有唯一值各貢獻 1,加總後就是唯一值數量。
⚠️ 在 Excel 2019 以前的版本,這個公式可能需要按 Ctrl+Shift+Enter 以陣列公式方式輸入。Excel 365 和 Excel 2021 則不需要。
含空白值修正版(強烈建議使用這個版本):
=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&""))
為什麼需要修正?因為標準版公式遇到空白格時,COUNTIF 的結果是 0,1/0 會產生 #DIV/0! 錯誤,導致整個公式失敗。修正版做了兩件事:
1. A2:A100<>"" 排除空白格(空白格的計算結果為 0,不影響加總)
2. COUNTIF(A2:A100,A2:A100&"") 在搜尋條件後加 &"",避免空白格被當作萬用字元
| 情境 | 標準版結果 | 修正版結果 |
|---|---|---|
| 資料無空白格 | ✅ 正確 | ✅ 正確 |
| 資料有 1 個空白格 | ❌ #DIV/0! | ✅ 正確 |
| 資料有多個空白格 | ❌ #DIV/0! | ✅ 正確 |
含條件的傳統公式
統計北區的獨立客戶數:
=SUMPRODUCT((B2:B100="北區")*(A2:A100<>"")/COUNTIF(A2:A100,A2:A100&""))
公式拆解:
(B2:B100="北區")→ 條件判斷,符合的列回傳 1,不符合回傳 0(A2:A100<>"")→ 排除空白格/COUNTIF(A2:A100,A2:A100&"")→ 計算每個值的出現次數並取倒數- 三者相乘後由 SUMPRODUCT 加總
如果你想深入了解 SUMPRODUCT 函數的更多應用,它其實是 Excel 中最強大的多條件計算工具之一。

COUNTIF 輔助欄法(最易理解)
如果你覺得 SUMPRODUCT 公式太難解釋給同事聽,輔助欄法是最直觀的替代方案:
步驟 1:在 B2 輸入公式,判斷該值是否「第一次出現」:
=IF(COUNTIF($A$2:A2, A2)=1, 1, 0)
步驟 2:向下填滿到 B100。第一次出現的值會標記為 1,重複出現的標記為 0。
步驟 3:用 SUM 加總輔助欄:
=SUM(B2:B100)
這個方法的優點是每一步都看得懂,適合需要讓不熟悉 Excel 的主管或同事理解邏輯的情境。缺點是多了一個輔助欄,資料表會比較雜亂。
方法四:Power Query 處理大量資料(Excel 2016 以上)
當資料量超過數萬筆,或你需要定期從外部來源匯入資料並自動更新統計結果時,Power Query 是比公式更合適的選擇。它是 Excel 2016 以上版本內建的資料轉換工具,不需要額外安裝。
何時應該用 Power Query
| 判斷標準 | 公式法 | Power Query |
|---|---|---|
| 資料量 | 幾百到幾千筆 | 數萬筆以上 |
| 更新頻率 | 偶爾手動更新 | 定期自動更新 |
| 資料來源 | 單一工作表 | 多工作表、外部資料庫、CSV |
| 計算速度 | 大量資料時明顯變慢 | 不受資料量影響 |
| 學習門檻 | 熟悉公式即可 | 需學習 Power Query 介面 |
Power Query Distinct Count 操作步驟
步驟 1:載入資料至 Power Query
選取資料範圍,點選「資料」→「從表格/範圍」(如果資料還不是表格,Excel 會自動轉換)。Power Query 編輯器會開啟。
步驟 2:選取要計算唯一值的欄位
在 Power Query 編輯器中,點選你要計算 Distinct Count 的欄位標題(例如「客戶名稱」)。如果需要按某個維度分組(例如按區域統計各區的獨立客戶數),先選取分組欄位。
步驟 3:使用「群組依據」功能
點選「轉換」→「群組依據」。在對話框中:
- 「群組依據」欄位選擇你的分組維度(例如「區域」)
- 「新欄位名稱」輸入「獨立客戶數」
- 「作業」選擇「相異值計數」(Count Distinct Rows)
- 「欄位」選擇要計算唯一值的欄位(例如「客戶名稱」)
步驟 4:載入結果至工作表
點選「常用」→「關閉並載入」,結果會以表格形式出現在新的工作表中。

實務案例:大型銷售資料庫的客戶分析
假設你管理一份 50,000 筆的訂單記錄,每月需要更新各區域的獨立客戶數。用 SUMPRODUCT 公式處理 5 萬筆資料,每次計算可能要等 10-30 秒;而 Power Query 的計算幾乎是瞬間完成。
更重要的是,Power Query 支援自動重新整理:在「資料」→「全部重新整理」就能一鍵更新所有查詢結果。你甚至可以設定「開啟檔案時自動重新整理」,讓報表永遠是最新的。
如果你的專案管理工作需要定期產出這類統計報表,Power Query 能省下大量的手動操作時間。
方法五:DAX DISTINCTCOUNT(Power Pivot / Power BI 用戶)
如果你已經在使用 Power Pivot 或 Power BI 做進階資料分析,DAX 的 DISTINCTCOUNT 函數是最原生的做法。
基本語法:
=DISTINCTCOUNT(訂單表[客戶名稱])
這個函數直接在資料模型層計算,不需要寫在儲存格中,而是作為量值(Measure)使用。它會自動忽略空白值,且支援與其他 DAX 函數組合使用(例如搭配 CALCULATE 加入篩選條件)。
DAX DISTINCTCOUNT 與 Excel 公式法的核心差異在於:它運作在資料模型上,而非工作表上。這意味著它可以處理數百萬筆資料而不影響效能,但前提是你需要熟悉 Power Pivot 的資料模型概念。
對於大多數 Excel 使用者來說,前四種方法已經足夠。DAX 適合的是已經在做 BI 分析、需要建立複雜資料模型的進階用戶。如果你想往這個方向發展,可以參考Excel 進階教學了解更多。

5 種方法完整比較與選擇指南
方法比較表
| 方法 | 適用版本 | 含條件篩選 | 空白值處理 | 動態更新 | 操作難度 | 推薦情境 |
|---|---|---|---|---|---|---|
| 樞紐分析表 | 2013+ | 需輔助欄 | 自動忽略 | 手動重整 | ★★☆☆ | 報表統計、給主管看 |
| UNIQUE 公式 | 365/2021 | FILTER 支援 | 需 IFERROR | 自動 | ★☆☆☆ | 動態分析、日常計算 |
| SUMPRODUCT | 所有版本 | 支援 | 需修正公式 | 自動 | ★★★☆ | 舊版相容、跨版本共用 |
| Power Query | 2016+ | 支援 | 自動忽略 | 可排程 | ★★★☆ | 大量資料、定期更新 |
| DAX | Power Pivot | 支援 | 自動忽略 | 自動 | ★★★★ | BI 分析、資料模型 |
根據你的情況選擇方法
不確定該用哪種方法?按照這個決策流程判斷:
- 你用的是 Excel 365 或 Excel 2021? → 優先用 UNIQUE 公式,最簡潔、自動更新
- 資料量超過 5 萬筆? → 不管什麼版本,都建議用 Power Query,公式在大量資料下會很慢
- 需要給不懂 Excel 的主管看報表? → 樞紐分析表最直觀,拖拉欄位就能產出報表
- Excel 版本是 2010 或更早? → SUMPRODUCT 傳統公式是唯一選擇(記得用修正版處理空白值)
- 已經在用 Power BI 或 Power Pivot? → 直接用 DAX DISTINCTCOUNT

如果你想系統性地提升 Excel 數據分析能力,從公式到樞紐分析表到 Power Query 都能融會貫通,線上課程是一個有效率的學習路徑。
當 Excel 不夠用:團隊協作的替代方案
Excel 做 Distinct Count 很方便,但如果你的工作場景涉及多人協作,Excel 的限制就會浮現:
- 版本衝突:兩個人同時編輯同一份報表,存檔時互相覆蓋
- 沒有即時同步:你更新了資料,同事看到的還是舊版本
- 手動統計效率低:每週要手動跑一次樞紐分析表、截圖貼到報告裡
如果你的需求是追蹤專案中的獨立負責人數、統計各部門的任務分配狀況、或是產出即時更新的團隊儀表板,monday.com 的儀表板功能可以自動統計唯一值,不需要寫任何公式。團隊成員更新任務狀態後,統計數字即時反映,省去手動重新整理的步驟。免費方案不需要信用卡,適合先試用看看是否符合需求。
結論
Excel Distinct Count 的 5 種方法各有適用場景,選對方法比硬記公式更重要:
- UNIQUE + COUNTA(Excel 365/2021):一行公式、自動更新,日常分析的首選
- 樞紐分析表(Excel 2013+):最直觀的報表工具,記得勾選「資料模型」
- SUMPRODUCT(所有版本):相容性最高,務必使用含空白值修正的版本
- Power Query(Excel 2016+):大量資料的最佳選擇,支援自動重新整理
- DAX DISTINCTCOUNT:Power Pivot / Power BI 用戶的原生方案
你的下一步:如果你是 Excel 365 用戶,現在就打開一份有重複值的資料表,在空白儲存格輸入 =COUNTA(UNIQUE(A2:A100)),親自體驗一下這個公式的簡潔。想進一步掌握更多Excel 公式與函數教學,可以從我們的完整指南開始。
如果你的統計需求已經超出 Excel 的範圍——需要多人即時協作、自動化報表、或視覺化儀表板——可以考慮用專案管理工具來取代手動統計。
Excel Distinct Count 常見問題 FAQ
為什麼樞紐分析表找不到 Distinct Count(相異計數)選項?
最常見的原因是插入樞紐分析表時沒有勾選「新增此資料至資料模型」。沒有啟用資料模型,值欄位設定中只會出現「計數」「加總」等基本選項,不會有「相異計數」。另外,Excel 2010 及更早版本完全不支援此功能。解決方法:刪除現有樞紐分析表,重新插入並勾選資料模型。
UNIQUE 函數顯示 #NAME? 怎麼辦?
NAME? 表示你的 Excel 版本不認識 UNIQUE 這個函數。UNIQUE 僅在 Excel 365 和 Excel 2021 中可用,Excel 2019 的支援不完整。替代方案:改用 SUMPRODUCT 公式 =SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&"")),所有版本都能用。
SUMPRODUCT 公式出現 #DIV/0! 怎麼修正?
這是因為資料範圍中有空白格。空白格的 COUNTIF 結果為 0,1/0 就會產生除以零的錯誤。修正公式:
=SUMPRODUCT((A2:A100<>"")/COUNTIF(A2:A100,A2:A100&""))
加入 A2:A100<>"" 排除空白格,並在 COUNTIF 的條件後加 &"" 避免空白值干擾。
如何計算多欄組合的唯一值(例如「客戶+產品」的唯一組合數)?
Excel 365/2021:用 & 連接多欄後套用 UNIQUE:
=COUNTA(UNIQUE(A2:A100&"-"&B2:B100))
所有版本:新增輔助欄 =A2&"-"&B2,再對輔助欄使用 SUMPRODUCT 或樞紐分析表計算唯一值。中間的分隔符號(-)可以換成任何不會出現在資料中的字元。
如何在 Distinct Count 中排除空白值?
各方法的處理方式不同:
- 樞紐分析表:自動忽略空白值,不需額外處理
- UNIQUE 公式:UNIQUE 會把空白也算一個值,需搭配 FILTER 排除:
=COUNTA(UNIQUE(FILTER(A2:A100, A2:A100<>""))) - SUMPRODUCT:使用修正版公式(見上方 FAQ)
- Power Query:在載入後可用「移除空白列」功能預處理
- DAX:DISTINCTCOUNT 自動忽略空白值
Excel Distinct Count 和 SQL COUNT(DISTINCT) 有什麼差異?
功能上是一樣的——都是計算不重複值的數量。SQL 的語法是 SELECT COUNT(DISTINCT column_name) FROM table,一行就搞定。Excel 沒有內建的 COUNT DISTINCT 函數,所以需要用上述 5 種方法間接實現。如果你有 SQL 背景,最接近 SQL 體驗的是 DAX 的 DISTINCTCOUNT,語法邏輯幾乎相同。而 Excel 365 的 =COUNTA(UNIQUE(...)) 則是最接近 SQL 簡潔度的公式寫法。