我正在使用数组公式来返回大数据集的总和和计数。
数组公式最多可包含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)
的布尔值数组。
非常感谢任何和所有想法。
感谢。
答案 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()与通配符一起使用。
说我们有:
在 A2 中输入:
=IF(A1="","*",A1)
并复制。这将显示星号或上面的值。
然后使用:
=SUMPRODUCT(ISNUMBER(SEARCH(A2,G1:G10,1))*ISNUMBER(SEARCH(B2,H1:H10,1))*ISNUMBER(SEARCH(C2,I1:I10,1)))
这是一种让 SUMPRODUCT()接受星号作为通配符的方法: