在阵列中使ROW的长度灵活

时间:2016-11-29 12:42:28

标签: excel excel-formula

我的公式是:

{=PRODUCT((1-0.1)^(ROW(A$1:A$2)-1))}

但是,我想使ROW的长度取决于单元格中的值(例如B1)。到目前为止我的解决方案是

{=PRODUCT((1-0.1)^(ROW(INDIRECT("A$1:A$"&B1))-1))}

鉴于INDIRECT是不稳定的,我对此解决方案并不满意。所以问题是:在没有使用volatile函数的情况下,是否有另一种解决此问题的方法?

谢谢!

编辑:将小数点分隔符从0更改为0.1

1 个答案:

答案 0 :(得分:5)

大多数时候 - 并非所有时间 - INDIRECT解决方案都可以替换为INDEX

在这种情况下:

{=PRODUCT((1-0.1)^(ROW(A$1:INDEX($A:$A,B1))-1))}

在这种特殊情况下,此解决方案也不是100%满意,因为每次INDEX列中的值都会更改时,A将重新计算。在这种情况下,这不是必需的,因为只需要列A中的行号。但它会比每次在工作表中某处改变值时重新计算的易变函数更好。