專案管理教學、範本與工具比較 訂閱電子報 →
Excel 教學 UPDATED 2026.09

【Excel Distinct Count】5種唯一值計數方法完整教學|含條件篩選與版本對照

學會 5 種 Excel Distinct Count 方法,根據你的 Excel 版本與資料量選擇最適合的唯一值計數做法,含多條件篩選公式與常見錯誤排查。

KEY TAKEAWAYS90 秒摘要
  • 01Distinct Count計算不重複值數量且不改變原始資料
  • 02樞紐分析表需勾選新增至資料模型才會出現相異計數選項
  • 03Excel 365可用UNIQUE搭配COUNTA一行公式自動更新
  • 04SUMPRODUCT公式相容所有版本但需處理空白值避免錯誤
  • 05Power Query適合大量資料且支援自動重新整理

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 與去重的差異:左圈「Distinct Count」包含計算數量、不改變資料、輸出數字;右圈「Remove Duplicates」包含刪除重複列、改變資料、輸出清單;重疊區包含都處理重複值問題
▲ Distinct Count 與去重的差異:左圈「Distinct Count」包含計算數量、不改變資料、輸出數字;右圈「Remove Duplicates」包含刪除重複列、改變資料、輸出清單;重疊區包含都處理重複值問題
免費下載:Excel 函數 & 快捷鍵速查表
最常用的 30+ 函數、快捷鍵與錯誤代碼,整理成一頁,放桌邊隨時查。輸入 Email,速查表立即寄到你的信箱;一併訂閱《借力 Lever Stack》每週電子報——精選省時工具與方法,隨時可退訂。
由《借力 Lever Stack》每週電子報寄送

方法一:樞紐分析表 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。初學者常困惑為什麼樞紐分析表的數字和預期不同,通常就是因為用了一般計數而非相異計數。

樞紐分析表 Distinct Count 操作流程:選取資料範圍、插入樞紐分析表並勾選資料模型、拖曳欄位至值區域、值欄位設定選擇相異計數、檢視結果
▲ 樞紐分析表 Distinct Count 操作流程:選取資料範圍、插入樞紐分析表並勾選資料模型、拖曳欄位至值區域、值欄位設定選擇相異計數、檢視結果

多欄位組合唯一值計數

如果你需要計算「客戶 + 產品」的唯一組合數(例如:客戶 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 欄是訂單金額。你想知道「北區今年有多少不同客戶下單」,只需要一行公式就能即時得到答案,而且新增訂單資料後數字會自動更新。

UNIQUE 函數三種條件篩選模式:單一條件(FILTER 單欄篩選)、多條件 AND(乘法運算符)、多條件 OR(加法運算符)
▲ UNIQUE 函數三種條件篩選模式:單一條件(FILTER 單欄篩選)、多條件 AND(乘法運算符)、多條件 OR(加法運算符)

常見錯誤與排查

#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 中最強大的多條件計算工具之一。

SUMPRODUCT 公式選擇指南:資料有空白格嗎?→ 有:使用修正版公式 → 無:標準版即可;需要條件篩選嗎?→ 有:加入條件判斷乘法 → 無:基本公式即可
▲ SUMPRODUCT 公式選擇指南:資料有空白格嗎?→ 有:使用修正版公式 → 無:標準版即可;需要條件篩選嗎?→ 有:加入條件判斷乘法 → 無:基本公式即可

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:載入結果至工作表

點選「常用」→「關閉並載入」,結果會以表格形式出現在新的工作表中。

Power Query Distinct Count 流程:從表格載入 Power Query、選取欄位、群組依據設定相異值計數、關閉並載入結果
▲ Power Query Distinct Count 流程:從表格載入 Power Query、選取欄位、群組依據設定相異值計數、關閉並載入結果

實務案例:大型銷售資料庫的客戶分析

假設你管理一份 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 進階教學了解更多。

Distinct Count 方法層級:基礎層(SUMPRODUCT 傳統公式、COUNTIF 輔助欄)、進階層(UNIQUE+COUNTA 公式、樞紐分析表 Distinct Count)、專業層(Power Query 相異值計數、DAX DIS
▲ Distinct Count 方法層級:基礎層(SUMPRODUCT 傳統公式、COUNTIF 輔助欄)、進階層(UNIQUE+COUNTA 公式、樞紐分析表 Distinct Count)、專業層(Power Query 相異值計數、DAX DISTINCTCOUNT)

5 種方法完整比較與選擇指南

方法比較表

方法 適用版本 含條件篩選 空白值處理 動態更新 操作難度 推薦情境
樞紐分析表 2013+ 需輔助欄 自動忽略 手動重整 ★★☆☆ 報表統計、給主管看
UNIQUE 公式 365/2021 FILTER 支援 需 IFERROR 自動 ★☆☆☆ 動態分析、日常計算
SUMPRODUCT 所有版本 支援 需修正公式 自動 ★★★☆ 舊版相容、跨版本共用
Power Query 2016+ 支援 自動忽略 可排程 ★★★☆ 大量資料、定期更新
DAX Power Pivot 支援 自動忽略 自動 ★★★★ BI 分析、資料模型

根據你的情況選擇方法

不確定該用哪種方法?按照這個決策流程判斷:

  1. 你用的是 Excel 365 或 Excel 2021? → 優先用 UNIQUE 公式,最簡潔、自動更新
  2. 資料量超過 5 萬筆? → 不管什麼版本,都建議用 Power Query,公式在大量資料下會很慢
  3. 需要給不懂 Excel 的主管看報表? → 樞紐分析表最直觀,拖拉欄位就能產出報表
  4. Excel 版本是 2010 或更早? → SUMPRODUCT 傳統公式是唯一選擇(記得用修正版處理空白值)
  5. 已經在用 Power BI 或 Power Pivot? → 直接用 DAX DISTINCTCOUNT
Distinct Count 方法選擇決策樹:Excel 365/→ UNIQUE 公式;資料量超過 5 萬筆 → Power Query;需要視覺化報表 → 樞紐分析表;舊版 Excel → SUMPRODUCT;使用 Power BI → DAX
▲ Distinct Count 方法選擇決策樹:Excel 365/→ UNIQUE 公式;資料量超過 5 萬筆 → Power Query;需要視覺化報表 → 樞紐分析表;舊版 Excel → SUMPRODUCT;使用 Power BI → DAX

如果你想系統性地提升 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 簡潔度的公式寫法。

表格視圖 · 自動化公式 · 即時協作 · 永久免費
用 monday.com 取代手動 Excel 追蹤
免費試用 →