如下图所示的工作表,使用公式来统计单元格区域 C2:C6 中没有出现在单元格区域 A2:A9 中的数据的数量。

也就是说,单元格区域 C2:C6 中凡是没有出现在单元格区域 A2:A9 中的数据,都是无效数据。从工作表中可以明显看出,单元格区域 C2:C6 中的“SX006”没有出现在单元格区域 A2:A9 中,因此“SX006”为无效数据,即单元格区域 C2:C6 中的无效数据为 1。
如何使用公式来统计呢?
先不看答案,自已动手试一试。
公式思路
在单元格区域 A2:A9 中查找单元格区域 C2:C6 中的每个值,统计没有找到的值的数量。
公式解析
在单元格 E1 中输入下面的数组公式:
=SUM(1*ISNA(MATCH(C2:C6,A2:A9,0)))
其值为 1,表明单元格区域 C2:C6 中没有出现在单元格区域 A2:A9 中的数据数为 1。如下图所示。

公式中,MATCH 函数在单元格区域 A2:A9 中依次查找 C2:C6 中的值,返回各个值在 A2:A9 中的位置,如果没有找到则返回 #N/A,结果为 {2;6;2;8;#N/A},将其作为 ISNA 函数的参数,得到结果 {FALSE;FALSE;FALSE;FALSE;TRUE},然后与 1 相乘,将其转换为 {0;0;0;0;1},作为 SUM 函数的参数得到结果 1。
ISNA 函数检测一个值是否为 #N/A,返回 TRUE 或 FALSE。检测值可以是一个单元格、公式,或者是一个单元格、公式或数值的名称。
小结
使用 1 与布尔值相乘,将布尔值转换为 0 或 1。
本例具有一定的实用性,即可以用于判断输入的数据是否是数据库已经规定的数据。例如,代表设备编码库的单元格区域 A2:A9 是已经规定的合法数据,而单元格区域 C2:C6 是实际工作中输入的数据,那么可以用这个公式来判断实际输入的数据是否是已规定的合法数据。
可以使用名称来替换单元格区域,使公式更灵活。