Excel公式导致数组和值错误

时间:2014-02-06 18:34:37

标签: excel excel-formula

我有以下等式:

=EXP(FORECAST(LN($A4), LN(OFFSET(INDIRECT($B$1 & "!B8"), MATCH($A4, INDIRECT($B$1 & "!A8:A308"), 1) - 1, COLUMN() - COLUMN($B4), 2)), LN(OFFSET(INDIRECT($B$1 & "!a8"), MATCH($A4, INDIRECT($B$1 & "!A8:A308"), 1) - 1, 0, 2))))

计算在对数日志空间中执行线性插值。在评估这部分时:

INDIRECT($B$1 & "!A8:A308"), 1) - 1, COLUMN() - COLUMN($B4), 2)

列差异(COLUMN() - COLUMN($B4))导致数组(例如,{0})。这会导致MATCH()函数的值错误。如果我运行上面的INDIRECT(...)调用,则列差异不会导致数组。我目前的解决方案是使用LARGE(..., 1)包裹列差异,这有效地使数组变平。

问题是为什么列差异导致数组,是否有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

发现它! Microsoft Office Reference说明了COLUMN函数:“如果省略了引用参数...... COLUMN函数将引用的列号作为水平数组返回。”

这就是解释。然后,解决方案是使用COLUMN(A1)而不是COLUMN()