今天要与大家分享的内容是在 Excel 中依据不同的条件,对符合条件的数据进行相应的计算。就如下图所展示的那样,左侧是部门员工的值班表格,而右侧则是要根据部门来查找出每个部门的值班人数。由于一个人可能会多次值班,所以我们在统计人数的时候需要先将重复值去除掉。
面对上述的场景,或许很多小伙伴都会采用下面这样的方法:
在目标单元格中输入如下公式:
=COUNTA(UNIQUE(FILTER(C:C,B:B=F2)))
随后点击回车键,再下拉填充数据即可。
解读:
上述的公式首先运用 FILTER 函数来查找对应 “部门” 值班的员工名单;接着再通过 UNIQUE 函数去除重复的员工姓名;最后使用 COUNTA 函数来统计非空单元格的数量。
特别提醒:
上述的公式看似逻辑清晰无误,然而它却存在一个极为严重的缺陷,那就是一旦查找不到符合条件的数据并返回错误值,随后再使用 COUNTA 函数来统计值班员工人数时,返回的错误值也会被统计为 1,也就是说 COUNTA 函数会将错误值也当作值班员工的数量进行统计。
当遇到上述的应用场景时,我们可以使用下面的函数组合,下面直接为您呈上干货,在目标单元格中输入公式:
=SUMPRODUCT((UNIQUE(FILTER(C:C,B:B=F2,0))<>0)*1)
然后点击回车键,下拉填充公式即可
解读:
①公式中 UNIQUE (FILTER (C:C,B:B=F2,0)) 的含义是依据 “部门” 名称查找对应的部门值班员工名单,接着去除重复值,如果查找不到值就返回 0。
②公式中 UNIQUE (FILTER (C:C,B:B=F2,0))<>0 是一个判断条件,当返回值不等于 0 时,符合条件就会返回一组逻辑值 TRUE,也就是有几个不重复的姓名就返回几个逻辑值 TRUE;否则当返回值等于 0 时,就返回逻辑值 FALSE,也就是没有找到符合条件的数据。
③由于逻辑值 TRUE 和 FALSE 无法直接参与运算,所以乘以 1 将逻辑值转换为数值。逻辑值 TRUE 实际上就是 1,逻辑值 FALSE 就是 0,它们都乘以 1 后就生成了一组由 1 和 0 组成的数组,最后再使用 SUMPRODUCT 函数进行求和就能得到人数。
评论 (0)