我的公式是:
{=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
答案 0 :(得分:5)
大多数时候 - 并非所有时间 - INDIRECT
解决方案都可以替换为INDEX
。
在这种情况下:
{=PRODUCT((1-0.1)^(ROW(A$1:INDEX($A:$A,B1))-1))}
在这种特殊情况下,此解决方案也不是100%满意,因为每次INDEX
列中的值都会更改时,A
将重新计算。在这种情况下,这不是必需的,因为只需要列A
中的行号。但它会比每次在工作表中某处改变值时重新计算的易变函数更好。