我不能让这个计算起作用。
=SUMIF({C3,E3,G3,I3,K3,M3},"N",{D3,F3,H3,J3,L3,N3})
RANGE
的数组工作正常但数组SUM_RANGE
返回错误消息:
参数必须是范围
任何人都可以帮助我吗?
谢谢, 迪安。
答案 0 :(得分:1)
未经测试,但看看是否有效
=SUMPRODUCT({C3,E3,G3,I3,K3,M3}="N",{D3,F3,H3,J3,L3,N3})
答案 1 :(得分:1)
请尝试使用偏移量过滤:
=SUM(FILTER(D3:N3,C3:M3="B"))
为什么它更好:
修改强>
另请参见sumif
with offset:
=SUMIF(C3:M3,"B",D3:N3)
答案 2 :(得分:1)
这是 sum(if()) 模式而不是 sumif() 模式的一个很好的候选者。试试这个:
=sum(arrayformula(if({C3,E3,G3,I3,K3,M3}="N",{D3,F3,H3,J3,L3,N3},0)))
工作原理
A | B | C | D | E | F | G | H | 我 | J | K | L | N | M | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Y | 1 | N | 1 | Y | 1 | Y | 1 | N | 1 | Y | 1 |
{C3,E3,G3,I3,K3,M3}="N"
创建一个包含 6 个值的数组。数组中的每个值是 TRUE
或 FALSE
,具体取决于输入数组中的相应单元格是否为“N”。这用作 logical_expression
的 if()
:假 | TRUE | 假 | 假 | TRUE | 假 |
{D3,F3,H3,J3,L3,N3}
也创建了一个包含 6 个值的数组。您已经熟悉了这一点,但我将其包括在内是为了指出它是 value_if_true
的 if()
:1 | 1 | 1 | 1 | 1 | 1 |
arrayformula()
允许 if()
返回一个数组logical_expression
中的 if()
。该公式创建一个与输入数组大小相等的输出数组。TRUE
,则输出数组将填充 value_if_true
中相同位置的值。如果是 FALSE
,则使用 value_if_false,
中的值 0
。在这个例子中,输出数组看起来像:0 | 1 | 0 | 0 | 1 | 0 |
sum()
聚合数组,在本例中返回 2