當前位置:首頁 > 科技 > 正文

Excel技巧應用篇:根據條件計算唯一數值

在 Excel 工作表中,您可能會遇到根據特定條件計算唯一數值數量的問題。 例如,如何從報告中計算産品“T 恤”的唯一數量值,如下圖所示? 在本文中,我将展示一些在 Excel 中實現此任務的公式。

Excel技巧應用篇:根據條件計算唯一數值

根據 Excel 2019、2016 及更早版本中的條件計算唯一數值

在 Excel 2019 及更早版本中,您可以組合 SUM、FREQUENCY 和 IF 函數來創建用于根據條件計算唯一值的公式,通用語法為:

{=SUM(--(FREQUENCY(IF(criteria_range=criteria,range),range)>0))}
Array formula, should pressCtrl + Shift + Enterkeys together.

criteria_range:與您指定的條件相匹配的單元格範圍;

criteria:您要基于的唯一值計數條件;

range:要計數的具有唯一值的單元格的範圍。

請将以下公式應用到空白單元格中,然後按Ctrl + Shift + Enter獲得正确結果的鍵,見截圖:

=SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))

Excel技巧應用篇:根據條件計算唯一數值

Excel技巧應用篇:根據條件計算唯一數值

公式說明:

=SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))

IF(A2:A12=E2,C2:C12):如果 A 列中的産品是“T 恤”,則此 IF 函數返回 C 列中的值,結果是這樣的數組:{FALSE;300;500;FALSE;400;FALSE;300;FALSE;FALSE;錯誤;350}。

FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)= FREQUENCY({FALSE;300;500;FALSE;400;FALSE;300;FALSE;FALSE;FALSE;350},{200;300;500;350;400;450;300;550;200;260;350}):FREQUENCE函數用于對數組列表中的每個數值進行計數,并返回結果為:{0;2;1;1;1;0;0;0;0;0;0;0} .

--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0)=--({0;2;1;1;1;0;0;0;0;0;0;0}>0): 測試數組中的每個值是否都大于 0,并得到這樣的結果:{FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}。 然後,雙負号将 TRUE 和 FALSE 轉換為 1 和 0,返回這樣的數組:{0;1;1;1;1;0;0;0;0;0;0;0}。

SUM(--(FREQUENCY(IF(A2:A12=E2,C2:C12),C2:C12)>0))=SUM({0;1;1;1;1;0;0;0;0;0;0;0}): 最後,使用 SUM 函數将這些值相加,得到總數:4。

Excel技巧應用篇:根據條件計算唯一數值

提示:

如果您想根據多個條件計算唯一值,您隻需要将其他條件添加到帶有 * 字符的公式中:

=SUM(--(FREQUENCY(IF((criteria,_range1=criteria1)* (criteria,_range2=criteria2)*…,range),range)>0))

Excel技巧應用篇:根據條件計算唯一數值

根據 Excel 365 中的條件計算唯一數值

在 Excel 365 中,ROWS、UNIQUE 和 FILTER 函數的組合可以幫助根據條件計算唯一數值,通用語法是:

=ROWS(UNIQUE(FILTER(range,criteria_range=criteria)))

range:要計數的具有唯一值的單元格的範圍。

criteria_range:與您指定的條件相匹配的單元格範圍;

criteria:您要基于的唯一值計數條件;

請将以下公式複制或輸入到單元格中,然後按輸入返回結果的關鍵,請參見屏幕截圖:

=ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))

Excel技巧應用篇:根據條件計算唯一數值

Excel技巧應用篇:根據條件計算唯一數值

公式說明:

=ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))

A2:A12=E2:此表達式檢查單元格 E2 中的值是否存在于 A2:A12 範圍内,并得到以下結果:{FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}。

FILTER(C2:C12,A2:A12=E2):FREQUENCE函數用于對數組列表中的每個數值進行計數,并返回結果為:{0;2;1;1;1;0;0;0;0;0;0;0} .

UNIQUE(FILTER(C2:C12,A2:A12=E2))=UNIQUE({300;500;400;300;350}):這裡,UNIQUE 函數用于從列表數組中提取唯一值以獲得此結果:{300;500;400;350}。

ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2)))=ROWS({300;500;400;350}):ROWS 函數返回基于單元格區域或數組的行數,因此,結果為:4。

Excel技巧應用篇:根據條件計算唯一數值

提示:

1. 如果數據範圍内不存在匹配的值,您将得到一個錯誤值,要将錯誤值替換為 0,請應用以下公式:

=IFERROR(ROWS(UNIQUE(FILTER(C2:C12,A2:A12=E2))), 0)

Excel技巧應用篇:根據條件計算唯一數值

2.要根據多個條件計算唯一值,您隻需要将其他條件添加到帶有 * 字符的公式中,如下所示:

=ROWS(UNIQUE(FILTER(range,(criteria_range1=criteria1)* (criteria_range2=criteria2)*…)))

Excel技巧應用篇:根據條件計算唯一數值

使用的相對功能:

和:

Excel SUM 函數返回提供的值的總和。

頻率:

FREQUENCY 函數計算值在一個值範圍内出現的頻率,然後返回一個垂直的數字數組。

行:

ROWS 函數返回給定引用或數組中的行數。

獨特的:

UNIQUE 函數返回列表或範圍中的唯一值列表。

過濾:

FILTER 功能有助于根據您定義的條件過濾一系列數據。

你可能想看:

有話要說...

取消
掃碼支持 支付碼