KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中根據多個條件統計區域內唯一值的個數?

作者小楊修改日期

在許多實際應用情境中,我們不僅需要計算數值的總量,更常需統計符合特定條件的不重複項目數量。例如,您可能想了解某位業務員銷售了多少種不同產品,或在特定時間範圍內有多少筆唯一的訂單。要在 Excel 中高效完成這類任務,必須掌握合適的公式、進階功能(如資料透視表),甚至自訂 VBA 解決方案。本文將介紹多種實用方法,說明如何根據單一或多個條件,精準統計區域中的唯一值數量,並提供清晰的逐步操作指引與實用技巧。

根據單一條件進行統計區域中唯一值的個數

根據兩個指定日期進行統計區域中唯一值的個數

根據兩個條件進行統計區域中唯一值的個數

根據三個條件進行統計區域中唯一值的個數

透過統計區域中唯一值的個數與資料透視表(不重複計數,Excel 2013+)

透過 VBA 程式碼進行統計區域中唯一值的個數(適用於複雜或自動化情境)


藍色右向箭頭氣泡根據單一條件進行統計區域中唯一值的個數

讓我們來看一個常見情境:您想計算 Tom 銷售了多少種不同的產品。此方法適用於資料結構簡單、且僅需根據單一條件(例如特定人員的銷售記錄)來評估不重複值的場景。雖然此方法直觀易用,但仍須謹慎使用陣列公式。

顯示 Excel 中根據單一條件計算唯一值的資料集截圖

在此情境中,請在空白儲存格(例如 G2)中輸入下列公式:

=SUM(IF("Tom"=$C$2:$C$20,1/(COUNTIFS($C$2:$C$20, "Tom", $A$2:$A$20, $A$2:$A$20)),0))

輸入公式後,請按下 Ctrl + Shift + Enter(而非僅按 Enter),以將其確認為陣列公式。公式列編輯欄中會出現大括號,結果也會立即顯示,如下圖所示:

顯示根據單一條件計算唯一值結果的截圖

注意

  • 「Tom」是您用來篩選結果的條件。若希望更具彈性,可將「Tom」替換為對其他儲存格的參照(例如 $F$2)。
  • $C$2:$C$20 包含待評估的業務員姓名。
  • $A$2:$A$20 是您用來計算不重複產品數量的欄位。
  • 若您的數據區域有所變更,請務必同步調整參照範圍。

提示:若您使用的是 Excel 365 或 Excel 2019 及更新版本,可嘗試運用 UNIQUEFILTER 函數,輕鬆簡化公式!

若出現 #DIV/0! 錯誤,請再次檢查條件,並確認所選範圍的長度是否一致。


藍色右向箭頭氣泡根據兩個指定日期進行統計區域中唯一值的個數

當您需要統計特定日期範圍內的不重複項目數量時(例如 2016/9/1 至 2016/9/30 期間銷售的所有不重複產品),即可運用此方法。它特別適合用來分析特定期間(如每月、每季或自訂日期範圍)的資料趨勢,但請務必確保所用日期格式與工作表中的日期值一致。

在您要顯示結果的空白儲存格中輸入下列公式:

=SUM(IF($D$2:$D$20=DATE(2016,9,1)),1/COUNTIFS( $A$2:$A$20, $A$2:$A$20, $D$2:$D$20, “=“&DATE(2016,9,1))),0)

在輸入公式後,請按下 Ctrl + Shift + Enter 以陣列公式方式執行。下方截圖展示了執行結果:

顯示 Excel 中計算兩個日期之間唯一值結果的截圖

注意

  • 2016/9/12016/9/30 為起始與結束日期條件。您可以視需要調整這些條件,甚至運用儲存格參照打造動態日期篩選器!
  • $D$2:$D$20 包含待檢查的日期資料。
  • $A$2:$A$20 再次作為您用來計算不重複項目或產品數量的欄位。
  • 請確認您的日期是以有效的 Excel 日期格式儲存,而非文字字串;若結果不如預期,請檢查日期格式與範圍是否正確。

提示:使用 DATE(年,月,日) 可避免因地區日期格式所導致的問題;若採用動態範圍,建議搭配具名範圍,讓公式更清晰易懂!


藍色右向箭頭氣泡根據兩個條件進行統計區域中唯一值的個數

假設您想分析 Tom 在九月份銷售的產品,需同時將姓名與日期範圍納入不重複計數的條件中。此情境常見於期間績效評估或區隔分析。隨著條件增多,公式將變得更加複雜,資料準確性也因此更顯關鍵。

在任意空白儲存格(例如 H2)中輸入下列公式:

=SUM(IF(("Tom“=$C$2:$C$20)*($D$2:$D$20=DATE(2016,9,1))),1/COUNTIFS($C$2:$C$20, "Tom“, $A$2:$A$20, $A$2:$A$20, $D$2:$D$20, “=“&DATE(2016,9,1))),0)

輸入公式後,請使用 Ctrl + Shift + Enter 確認,即可立即看到不重複計數結果!詳情請參閱下列示意圖:

顯示 Excel 中根據兩個條件計算唯一值結果的截圖

注意事項:

  • 「Tom」為姓名篩選條件,而「2016,9,1」與「2016,9,30」則界定您的日期範圍。您可依需求調整這些值,或透過儲存格參照讓條件具備動態靈活性。
  • $C$2:$C$20 為人員(或其他第一條件)欄位,$D$2:$D$20 為日期欄位,而 $A$2:$A$20 則包含需計算不重複次數的項目。
  • 所有範圍的長度必須一致,才能避免錯誤發生。

若您希望使用「或」條件(例如計算 Tom 或南部地區銷售的不重複產品數量),可採用下列公式。此方法能擴大搜尋範圍,但若資料同時符合兩項條件,結果可能會產生重疊:

=SUM(--(FREQUENCY(IF(("Tom"=$C$2:$C$20)+("South"=$B$2:$B$20), COUNTIF($A$2:$A$20, "0))

別忘了按下 Ctrl + Shift + Enter,即可立即看到如下所示的結果:

顯示 Excel 中根據「或」條件計算唯一值的截圖

提示:套用「OR」條件時,請注意若同一筆記錄同時符合兩個條件,可能導致重複計數;處理大型資料集時,效能亦可能受到影響。


藍色右向箭頭氣泡統計區域中唯一值的個數(基於三項條件)

有時您的分析可能需要三個或更多條件,例如僅統計 Tom 在九月於北部地區銷售的獨特產品數量。這種情況在製作報表或多維度商業洞察的數據分析中相當常見。處理此類複合邏輯時,謹慎管理參照至關重要。

將此陣列公式置於空白儲存格中(例如 I2):

=SUM(IF(("Tom"=$C$2:$C$20)*($D$2:$D$20=DATE(2016,9,1))*("North"=$B$2:$B$20),1/COUNTIFS($C$2:$C$20, "Tom", $A$2:$A$20, $A$2:$A$20, $D$2:$D$20, "="&DATE(2016,9,1), $B$2:$B$20, "North")),0)

按下 Ctrl + Shift + Enter 完成輸入。以下是供您參考的範例結果:

顯示 Excel 中根據三個條件計算唯一值結果的截圖

針對進階條件,請務必仔細確認所有範圍是否一致,且資料類型(例如日期與文字)是否正確無誤。參照錯位可能導致錯誤或產生誤導性結果。

提示:

  • 若在處理大型資料集時遇到效能問題,建議拆分公式,或改用 Excel 的資料透視表解決方案,輕鬆提升運算效率!
  • 為所有條件使用具名範圍或儲存格參照,不僅能提升公式的可讀性,還能有效減少錯誤。
  • 若需頻繁使用,建議將這些公式儲存為具名儲存格參照或自訂函數。

藍色右向箭頭氣泡 統計區域中唯一值的個數搭配資料透視表使用(相異計數,Excel 2013+)

若您使用 Excel 2013 或更新版本,資料透視表能提供比統計區域中唯一值個數更直覺且無需公式的替代方案,適用於單一或多項條件的資料分析。相異計數功能可有效彙總並篩選大型資料集,特別適合動態報表環境。但請注意,舊版 Excel 的資料透視表並不支援相異計數功能。

使用方法:

  1. 選取您的資料集,然後前往插入 > 樞紐分析表
  2. 在「建立樞紐分析表」對話方塊中,選擇樞紐分析表的放置位置,勾選「將此資料新增至資料模型」核取方塊,然後按一下「確定」。
  3. 將您要計算不重複次數的欄位(例如產品)拖曳至「值」區域,預設會顯示為「……的計數」。
  4. 點選「值」區域中的欄位,即可選取值欄位設定
  5. 在彈出的對話方塊中,向下捲動並選取不重複計數(此選項僅適用於 Excel 2013 或更新版本,且僅在建立樞紐分析表時啟用「將此資料新增至資料模型」選項才會出現)。
  6. 只要將您的條件欄位(例如業務員、地區或日期)加入「篩選」或「列/欄」區域,即可套用單一或多個篩選條件。
  7. 您的樞紐分析表現已根據所選條件篩選,並顯示不重複值的計數。

優點:視覺化程度高,無需編輯公式即可輕鬆調整篩選條件,非常適合打造互動式報表!

限制:不支援 Excel 2010 及更早版本;新增資料後,需手動重新整理樞紐分析表。

實用提示:務必確保來源資料中每筆記錄不含非預期的重複項目。若找不到「相異計數」選項,請重新建立樞紐分析表,並勾選「將此資料新增至資料模型」選項。


藍色右向箭頭氣泡 統計區域中唯一值的個數搭配 VBA 程式碼使用(適用於複雜或自動化情境)

有時您可能需要根據多種條件自動統計區域中唯一值的數量,特別是在處理龐大資料集或需頻繁重複分析時。VBA 巨集正是此類情境的理想選擇——一旦設定完成,即可自動執行包含多條件篩選在內的各種邏輯,完全無需手動介入。不過,VBA 屬於較進階的功能,建議熟悉巨集操作或有持續分析需求的使用者採用。

操作步驟:

  1. 按下 Alt + F11,立即開啟 VBA 編輯器!進入編輯器後,選取插入 > 模組,輕鬆建立新模組。
  2. 將下列 VBA 程式碼複製並貼上至該模組中:
Sub CountUniqueWithCriteria()
    Dim DataRange As Range
    Dim CriteriaRange As Range
    Dim CriteriaValue As Variant
    Dim Dict As Object
    Dim i As Long
    Dim UniqueCount As Long
    Dim ResultCell As Range
    
    Set Dict = CreateObject("Scripting.Dictionary")
    
    ' Prompt for range settings
    Set DataRange = Application.InputBox("Select data range (items to count):", "KutoolsforExcel", Type:=8)
    Set CriteriaRange = Application.InputBox("Select criteria range (e.g. Salesperson):", "KutoolsforExcel", Type:=8)
    CriteriaValue = Application.InputBox("Enter criteria value:", "KutoolsforExcel", "", Type:=2)
    Set ResultCell = Application.InputBox("Select cell for result output:", "KutoolsforExcel", Type:=8)
    
    On Error Resume Next
    For i = 1 To DataRange.Rows.Count
        If CriteriaRange.Cells(i, 1).Value = CriteriaValue Then
            If Not Dict.Exists(DataRange.Cells(i, 1).Value) Then
                Dict.Add DataRange.Cells(i, 1).Value, 1
            End If
        End If
    Next i
    
    UniqueCount = Dict.Count
    ResultCell.Value = UniqueCount
    
    MsgBox "Unique count for '" & CriteriaValue & "': " & UniqueCount, vbInformation, "KutoolsforExcel"
End Sub
  1. 關閉 VBA 編輯器並返回工作表,按下 Alt + F8,選取 CountUniqueWithCriteria,立即執行巨集!
  2. 依照輸入提示,根據您的資料設定範圍與條件。結果將顯示於您指定的儲存格中,並同時以訊息方塊呈現。

參數說明與注意事項:

  • 此巨集目前設定為單一條件。若要擴充為多條件,請修改迴圈內的 If ... Then 邏輯。
  • 執行巨集前,務必先儲存目前的活頁簿,因為所有變更皆無法復原。
  • 若遇到執行錯誤,請先在 Excel 設定中啟用巨集。
  • 此方法極適合處理大型或經常更新的資料,能有效避免手動輸入公式所帶來的繁瑣操作。

優勢:高度可自訂且支援自動化,能高效處理大型及持續變動的資料集,完美契合進階或重複性工作流程需求!

缺點:需啟用巨集權限,初學者可能需要一些時間熟悉 VBA 操作。


進行基於條件的唯一值計數時,務必確認範圍參照正確,並確保所有條件欄位的大小一致。範圍不匹配是導致錯誤或結果不準確的常見原因。若公式傳回非預期結果,請檢查是否存在隱藏的格式問題或空白儲存格。在講求效能的情境下,資料透視表與 VBA 可作為陣列公式的穩健替代方案。請根據您的熟練程度與資料集的複雜度,選擇最適合的解決方案。別忘了,Kutools for Excel 提供額外的工具與捷徑,能進一步簡化這些作業,在複雜活頁簿中實現更高效率。

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 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 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用