


以统计公司工程部男员工的人数为例,效果如下图所示。在单元格 H1 中输入以下公式,=SUM((B2:B16=”男”)*(D2:D16=”工程部”)) ,按Ctrl+Shift+Enter 快捷键结束。
此公式中包含了两个数组,第一个数组判断区域 B2:B16 中的值是否为“男”,第二个数组判断区域 D2:D16 中的值是否为“工程部”。判断结果为 包含逻辑值 TRUE 和 FALSE 的数组,将这两个数组相乘,即可将逻辑值转换为包含 1 和 0 的数组,最后使用 SUM 函数对该数组求和,即可得到符合条件的员工人数。

以统计不重复员工的人数为例,效果如下图所示。在单元格 H1 中输入下面的公式,=COUNT(0/(MATCH(A2:A16,A2:A16,0)=(ROW(2:16)-1))) ,按Ctrl+Shift+Enter 快捷键结束。
首先使用 MATCH 函数统计区域 A2:A16 中每个单元格在该区 域中第一次出现的位置并得到一个数组。将此数组中的每个数字与行号进行比较,如果第 一次出现的位置与行号相等,则说明是第一次出现,返回 TRUE,否则返回 FALSE,即不 是第一次出现,这样将得到一个包含 TRUE 和 FALSE 的数组。然后使用 0 除以这个数组, 得到一个包含 0 和错误值的数组,最后使用 COUNT 函数统计数组中 0 的个数,即为不重 复员工的人数。

以提取不重复员工姓名为例,效果如下图所示。在单元格 G2 中输入下面的公式,=LOOKUP(1,0/NOT(COUNTIF($G$1:G1,$A$2:$A$16)),$A$2:$A$16) ,按Ctrl+Shift+Enter 快捷键结束。
首先使用 COUNTIF 函数在区域 A2:A16 中查找该区域中的每个 单元格是否在单元格 G1 中出现,返回一个全为 0 的数组。经过 NOT 取反后转换为全是 1 的数组。用 0 除以该数组返回一个全是 0 的数组。然后使用 LOOKUP 函数在该数组中查找 1,由于找不到 1,所以返回最后一个 0 对应于区域 A2:A16 中的姓名。当将单元格 G2 中 的公式向下填充复制时,区域$G$1:G1 变为$G$1:G2,因此可以排除单元格 G1 中已提取出 的姓名。将公式继续向下填充复制,可以排除 G 列中已提取出的姓名,因此最终返回不重 复的姓名。当提取出全部不重复姓名后,再向下填充复制公式时,将返回错误值#N/A。
