Excel公式:使用条件计算唯一数值

220 多个excel快捷键速查表,适用Windows和Mac。工作效率提高10倍。免费下载>>>

下载 “excel快捷键速查表” Excel快捷键速查表.zip – 已下载54次 – 3 MB

Excel 公式:使用条件计算唯一数值

通用公式

{=SUM((FREQUENCY(IF(criteria,values),values)>0))}
概括 

要计算某个范围内的唯一数值,您可以使用基于FREQUENCYSUMIF函数的公式。在所示示例中,员工编号出现在 B5:B14 范围内。G6中的公式是:

=SUM((FREQUENCY(IF(C5:C14=“A”,B5:B14),B5:B14)>0))

它返回 2,因为建筑物 A 中有 2 个唯一的员工 ID。

注意:这是一个数组公式,必须使用 control + shift + enter 输入,除非您使用的是 Excel 365。

解释 

注意:在 Excel 365 之前,Excel 没有专门的函数来计算唯一值。这个公式显示了一种计算唯一值的方法,只要它们是数字的。如果您有文本值或文本和数字的混合,则需要使用更复杂的公式

Excel FREQUENCY 函数返回频率分布,它是一个汇总表,其中包含以“bins”组织的数值频率。我们在这里使用它作为计算唯一数值的一种迂回方式。为了应用标准,我们使用 IF 函数。

从内到外,我们首先使用 IF 函数过滤值:

IF(C5:C14=“A”,B5:B14) // filter on building A

此操作的结果是这样的数组:

{905;905;905;905;773;773;FALSE;FALSE;FALSE;FALSE}

请注意,建筑 B 中的所有 id 现在都是 FALSE。该数组作为data_array直接传递给 FREQUENCY 函数。对于bins_array,我们自己提供 id:

FREQUENCY({905;905;905;905;773;773;FALSE;FALSE;FALSE;FALSE},{905;905;905;905;773;773;801;963;963;963})

使用此配置,FREQUENCY 返回以下数组:

{4;0;0;0;2;0;0;0;0;0;0}

结果有点神秘,但意思是905出现了四次,773出现了两次。FALSE 值会被自动忽略。

FREQUENCY 有一个特殊的功能,它会自动为数据数组中已经出现的任何数字返回零,这就是为什么一旦遇到数字,值就为零的原因。这是允许这种方法工作的功能。 

接下来,测试这些值中的每一个是否大于零:

{4;0;0;0;2;0;0;0;0;0;0}>0

结果是这样的数组:

{TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

列表中的每个 TRUE 代表列表中的唯一数字,我们只需将 TRUE 值与 SUM 相加即可。但是,SUM 不会将数组中的逻辑值相加,因此我们需要首先将这些值强制为 1 或零。这是通过双重否定(–) 完成的。结果是一个只有 1 或 0 的数组:

{1;0;0;0;1;0;0;0;0;0;0}

最后,SUM 将这些值相加并返回总数,在本例中为 2。

多个标准

您可以扩展公式以处理多个条件,如下所示:

{=SUM((FREQUENCY(IF((criteria1)*(criteria2),values),values)>0))}

220 多个excel快捷键速查表,适用Windows和Mac。工作效率提高10倍。免费下载>>>

下载 “excel快捷键速查表” Excel快捷键速查表.zip – 已下载54次 – 3 MB

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注