考虑具有以下值的Excel工作表:
A B
--------
1| 1 5
2| 2 8
3| 3 11
在单元格C1:C3中输入数组公式=TREND(B1:B3,A1:A3,A1:A3)
,按预期返回{5;8;11}
。输入=OFFSET(C1:C3,1,0)
也会按预期返回{8;11;0}
。
但是,如果我尝试输入=ROWS(OFFSET(TREND(B1:B3,A1:A3,A1:A3),1,0))
,我会收到消息“您输入的公式包含错误”。我无法做任何让它接受公式。
接下来,我分别使用公式=Sheet1!$C$1:$C$3
和=TREND(Sheet1!$B$1:$B$3,Sheet1!$A$1:$A$3,Sheet1!$A$1:$A$3)
创建了命名范围“TrendRange”和“TrendFormula”。
同样,=OFFSET(TrendRange,1,0)
会给出正确的结果,但=OFFSET(TrendFormula,1,0)
不会(导致#VALUE!
)。
有一个简单的测试似乎总能确定OFFSET何时会出现此问题。如果=CELL("address", xxx)
或=AREAS(xxx)
导致#VALUE!
,则xxx部分无法在OFFSET中使用。
这有什么办法吗?我尝试过使用LINEST和SLOPE / INTERCEPT而不是TREND,但我得到了相同的结果。
答案 0 :(得分:1)
OFFSET需要一个引用(一个单元格或一个范围作为第一个参数),它不会接受一个数组,所以因为像
这样的公式 =TREND(B1:B3,A1:A3,A1:A3)
总是返回一个数组,不能将它用作OFFSET的第一个参数。这与你之前的问题有关吗?