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

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

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

Excel formula: Count unique text values with criteria

通用公式

{=SUM((FREQUENCY(IF(criteria,MATCH(vals,vals,0)),ROW(vals)ROW(vals.first)+1)>0))}
概括

要使用条件计算范围内的唯一文本值,您可以使用基于FREQUENCY和MATCH函数的数组公式。在所示示例中,G6 中的公式为:

{=SUM((FREQUENCY(IF(C5:C11=G5,MATCH(B5:B11,B5:B11,0)),ROW(B5:B11)ROW(B5)+1)>0))}

返回 3,因为三个不同的人在 Omega 项目上工作。

注意:这是一个数组公式,必须使用 control + shift + enter 输入。

解释

这是一个复杂的公式,它使用 FREQUENCY 来计算通过 MATCH 函数派生的数值。从内到外,MATCH 函数用于获取数据中出现的每个值的位置:

MATCH(B5:B11,B5:B11,0)

MATCH 的结果是这样的数组:

{1;1;3;1;1;6;7}

因为 MATCH 总是返回第一个匹配的位置,所以在数据中出现多次的值返回相同的位置。例如,因为“Jim”在列表中出现了 4 次,所以他在这个数组中作为数字 1 出现了 4 次。

在 MATCH 函数之外,IF 函数用于应用标准,在这种情况下涉及测试项目是否为“omega”(来自单元格 G5):

IF(C5:C11=G5 // filter on “omega”

IF 函数就像一个过滤器,只允许 MATCH 中的值与“omega”相关联时通过。结果是这样的数组:

{FALSE;FALSE;FALSE;1;1;6;7} // after filtering

过滤后的数组作为data_array参数直接传递给 FREQUENCY 函数。接下来,使用ROW 函数为数据中的每个值构建一个顺序数字列表:

ROW(B3:B12)ROW(B3)+1

这将创建一个这样的数组:

{1;2;3;4;5;6;7;8;9;10}

它成为 FILTER 中的bins_array参数。此时,我们有:

FREQUENCY({FALSE;FALSE;FALSE;1;1;6;7},{1;2;3;4;5;6;7})

FREQUENCY 返回一个数字数组,指示数据数组中每个值的计数,按 bin 组织。当一个数字已经被计数时,FREQUENCY 将返回零。FREQUENCY 的结果是这样的数组:

{2;0;0;0;0;1;1;0} // result from FREQUENCY

注意: FREQUENCY 总是返回一个比bins_array多一项的数组。

此时,我们可以将公式改写成这样:

=SUM(({2;0;0;0;0;1;1;0}>0))

我们检查大于零的值,这会将数字转换为 TRUE 或 FALSE:

=SUM(({TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}))

然后我们使用双重否定将逻辑值强制为 1 和 0:

=SUM({1;0;0;0;0;1;1;0})

最后,SUM 函数返回 3 作为最终结果。

注意:这是一个数组公式,必须使用 Control + Shift + Enter 输入。

处理范围内的空单元格

如果范围内的任何单元格为空,则需要调整公式以防止将空单元格传递到 MATCH 函数,这将引发错误。您可以通过添加另一个嵌套 IF 函数来检查空白单元格来做到这一点:

{=SUM((FREQUENCY(IF(B5:B11<>“”,IF(C5:C11=G5,MATCH(B5:B11,B5:B11,0))),ROW(B5:B11)ROW(B5)+1)>0))}

有两个标准

如果您有两个条件,您可以通过添加另一个嵌套 IF 来扩展公式的逻辑:

{=SUM((FREQUENCY(IF(c1,IF(c2,MATCH(vals,vals,0))),ROW(vals)ROW(vals.1st)+1)>0))}

其中c1 = 标准 1、c2 = 标准 2 和vals = 值范围。

使用布尔逻辑

使用布尔逻辑,您可以减少嵌套的 IF:

{=SUM((FREQUENCY(IF((criteria1)*(criteria2),MATCH(vals,vals,0)),ROW(vals)ROW(vals.1st)+1)>0))}

这使得添加和管理其他标准变得更加容易。

注意:我从 Mike Givin 的关于数组公式的优秀书籍Control-Shift-Enter 中改编了上面的公式。

Excel 365 中的唯一函数

在Excel 365中,UNIQUE 函数提供了一种更好、更优雅的方式来列出唯一值 和计算唯一值。这些公式可以适用于应用逻辑标准。

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

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

发表评论

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