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

时间:2015-07-01 14:28:54

标签: arrays excel array-formulas

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

数组公式最多可包含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)

有没有办法创建一个解释这些可能性的数组公式?我最初尝试创建一个动态参数字符串

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

然后使用字符串作为数组公式

中的参数
D1 = {count(if(E1,population))}

但我可以找到一种方法让它发挥作用。

我尝试了很多解决方案,但总有一个关键因素缺失。通过使用isblank,我可以确定单元格是否为空,但为了使其有用,我需要将此返回值转换为长度为count(population)的布尔值数组。

非常感谢任何和所有想法。

感谢。

2 个答案:

答案 0 :(得分:0)

你试过Nz()吗?使用它封装当前代码并尝试一下。我自己在这里和那里都遇到过空白/空白的问题。

另一种选择可能是IIF()声明。但这可能不是你想要的。以下是参考链接:

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

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

答案 1 :(得分:0)

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

说我们有:

enter image description here

A2 中输入:

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

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

然后使用:

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

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

enter image description here