如何计算唯一值在Excel中什么标准?
之前我们学习了如何计算范围内的唯一值。我们还学习了如何从范围中提取唯一值。在本文中,我们将学习如何在Excel中根据条件计算范围内的唯一值。
通用公式
{=SUM(--(FREQUENCY(IF(condition,MATCH(range,range,0)),ROW(range)-ROW(firstCell in range)+1)>0))}
_这是一个数组公式,请使用CTRL + SHIFT + ENTER_条件:要获取唯一值的条件。
范围:要获得唯一值的范围。
范围内的firstCell:它是范围内第一个单元格的引用。
如果范围为A2:A10,则为A2。
示例:
在这里,我有姓名的数据。相邻列中提到了相应的类。我们需要在每个类中计算唯一的名称。
使用以上通用公式将此公式写在E2中
{=SUM(--(FREQUENCY(IF(B2:B19="Class 1",MATCH(A2:A19,A2:A19,0)),ROW(A2:A19)-ROW(A2)+1)>0))}
上面的公式在B2:B19 =“ Class 1”的条件下返回excel范围A2:A19中的唯一值。
要获得不同类别中的唯一值,请更改条件。我们已经在这里对其进行了硬编码,但是您也可以提供单元格引用。如果您不希望它们也改变,请使用命名范围或绝对引用作为范围。
如何运作?
让我们从内部分解它。
link:/ tips-if-condition-in-excel [IF]
(B2:B19 =“ Class 1”,link:/ lookup-formulas-excel-match-function [MATCH]
(A2:A19,A2 :A19,0))B2:B19 =“ Class 1” *:此部分将返回true和false数组。
每次比赛都为TRUE。
\ {TRUE; FALSE; TRUE; FALSE; TRUE; TRUE; FALSE ….}`link:/ lookup-formulas-excel-match-function [MATCH]`(A2:A19,A2:A19,0)*:
该部分将根据MATCH的属性返回范围A2:A19中每个值的第一个位置。
\ {1; 2; 1; 4; 5; 4; 1; 8; 9; 1; 2; 1; 4; 5; 4; 1; 8; 9}。
现在,对于每个TRUE值,我们将获得头寸;对于false,我们将获得FALSE。因此,对于整个IF语句,我们将得到\ {1; FALSE; 1; FALSE; 5; 4; FALSE; FALSE; FALSE; FALSE; 2; FALSE; FALSE; 5; FALSE; 1; 8; FALSE}。
接下来我们转到频率部分。
FREQUENCY(链接:/ tips-if-condition-in-excel [IF](B2:B19 =“ Class 1”,链接: / lookup-formulas-excel-match-function [MATCH](A2:A19,A2:A19,0)),link:/ lookup-and-reference-excel-row-function [ROW](A2:A19 )-link:/ lookup-and-reference-excel-row-function [ROW](A2)+1)link:/ lookup-and-reference-excel-row-function [ROW](A2:A19 ):*这将返回范围A2:A19中每个单元格的行号。
\ {2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19}`link:/ lookup-and-reference-excel- row-function (A2:A19)-`link:/ lookup-and-reference-excel-row-function [ROW]
(A2):
现在我们从每个行号中减去第一行号。这将返回一个从0开始的序列号数组。 \ {0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17}由于我们想要从1开始的序列号,加1。
链接:/ lookup-and-reference-excel-row-function [ROW](A2:A19)-`link:/ lookup-and-reference-excel-row-function [ROW](A2)+1。
这给了我们一个从1开始的序列号数组。
| \ {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18}这将帮助我们获得唯一的条件计数。
现在我们有:
链接:/ statistical-formulas-excel-frequency-function-2 [FREQUENCY]`(\ {1; FALSE; 1; FALSE; 5; 4; FALSE; FALSE; FALSE; FALSE; 2; FALSE; FALSE; 5; FALSE; 1; 8; FALSE},* \ {1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18})
这将返回给定数组中每个数字的频率。\ {3; 1; 0; 1; 2; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0 }这里每个正数表示满足条件时唯一值的出现。我们需要在该数组中计数大于0的值。
为此,我们将其检查> 0。这将返回TRUE和FALSE。我们使用-(双二进制运算符)将true转换为false。
link:/ math-and-trig-excel-sum-function [SUM]
(-(\ {3; 1; 0; 1; 2; 0; 0; 1; 0; 0; 0; 0; 0 ; 0; 0; 0; 0; 0; 0; 0})> 0)转换为SUM(\ {1; 1; 0; 1; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0})
最后,我们得出标准范围内名称的唯一计数为5。
我知道要理解它有点复杂,但是您可以从公式评估选项中进行检查。
要使用多个条件对唯一值进行计数,我们可以使用布尔逻辑:
用和逻辑
计算具有多个条件的唯一值
上述通用公式可以在多个条件下以及所有条件都为真时计算唯一值。
{=SUM(--(FREQUENCY(IF(condition1 * Condition2,MATCH(range,range,0)),ROW(range)-ROW(firstCell in range)+1)>0))}
用或逻辑
计数具有多个条件的唯一值
此通用公式可用于通过“或”逻辑对唯一值进行计数。
{=SUM(--(FREQUENCY(IF(condition1 + Condition2,MATCH(range,range,0)),ROW(range)-ROW(firstCell in range)+1)>0))}
这意味着它将计算是否满足任何条件。
是的,这就是您如何在多个条件下计算范围内的唯一值的方法。这有点复杂,但速度很快。一旦开始使用它,您将了解它的工作原理。
如果您对此excel公式文章有任何疑问,请在下面的评论部分中告诉我。