忽略Excel数组公式中的空白参数

我正在使用数组公式来返回大数据集上的总和和计数。

数组公式最多可以有3个参数,但公式需要在任何或所有参数<blank>时适应, 而不使用VBA

例如

 A1 = "Australia" B1 = "Finance" C1 = "Female" 

D1包含公式

 D1 = {count(if((region=A1)*(sector=B1)*(gender=C1),population))} 

有时候其中一个标准将是空白的

  A1 = "Australia" B1 = <blank> C1 = "Male" 

在这种情况下,我想公式返回相当于:

 D1 = {count(if((region=A1)*(gender=C1),population))} 

在极端情况下,A1,B1和C1可以全部为空,在这种情况下, D1的公式应该返回等于Count(population)

有没有办法创build一个数组公式来解决这些可能性? 我最初尝试创build一个dynamic参数string

 E1 = "(region=A1)*(sector=B1)*(gender=C1)" 

然后将该string用作数组公式中的参数

 D1 = {count(if(E1,population))} 

但我可以find一种方法来使这个工作。

我已经尝试了一些解决scheme,但总是缺less一个关键因素。 通过使用isblank我可以确定如果单元格是空白的,但为了这是有用的,我需要把这个返回的值变成长度count(population)的布尔值数组。

任何和所有的想法,不胜感激。

谢谢。

你试过Nz()吗? 封装你的当前代码,并试试看。 我自己在这里和那里有空白/空值的问题。

另一种select可能是IIF()声明。 但是,这可能不会做你想要的。 这里是参考链接:

Nz: http : //www.techonthenet.com/access/functions/advanced/nz.php

IIF: http : //www.techonthenet.com/access/functions/advanced/iif.php

你不需要VBA ,你甚至不需要数组公式 。 您可以使用SUMPRODUCT()通配符

假设我们有:

在这里输入图像说明

A2中input:

 =IF(A1="","*",A1) 

并复制。 这将显示星号或上面的值。

然后使用:

 =SUMPRODUCT(ISNUMBER(SEARCH(A2,G1:G10,1))*ISNUMBER(SEARCH(B2,H1:H10,1))*ISNUMBER(SEARCH(C2,I1:I10,1))) 

这是一种让SUMPRODUCT()接受星号作为通配符的方法:

在这里输入图像说明