我不知道为什么对数组公式求和不会返回正确的结果。公式是:
=SUM(INDEX($C$4:$C$12,TRANSPOSE(OFFSET(K17,0,0,1,COUNT(K17:S17)))))
我想要做的是根据$C$4:$C$12
中的值从K17:S17
中选择多个值,然后对其求和。在行K17:S17
中,可能有1到9个正整数(从1到9),它们确定从C4:C12
中选择哪一行。
当我只使用INDEX($C$4:$C$12,TRANSPOSE(OFFSET(K17,0,0,1,COUNT(K17:S17))))
作为数组函数时,它会返回我想要正确调整的值。但是在frot中添加sum只返回此集合中的第一个值。
答案 0 :(得分:0)
为了将数组作为INDEX
row_num 或 col_num 参数传递,需要稍加强制:
https://excelxor.com/2014/09/05/index-returning-an-array-of-values/
此外,如果可能,最好避免使用易变OFFSET
构造。
=SUM(INDEX($C$4:$C$12,N(IF({1},K17:INDEX(K17:S17,MATCH(9.9E+307,K17:S17))))))
顺便提一下,不需要CSE
。
修改:如果K17:S17
范围内的最大值为9,我们可以将9.9E+307
替换为10
:
=SUM(INDEX($C$4:$C$12,N(IF({1},K17:INDEX(K17:S17,MATCH(10,K17:S17))))))
此致