数组作为单元格公式参数

Array as cell formula parameter

我需要在 LibreOffice Calc 中计算多项式系数以拟合数据点。 X 和 Y 值位于单元格 A2:... 和 B2:... 中,数据大小位于单元格 D1 中,多项式次数位于单元格 D2 中。这很好用:

=TRANSPOSE(LINEST(OFFSET($B;0;0;$D;1);OFFSET($A;0;0;$D;1)^{1;2;3}))

我需要将数组 1:$D 而不是 {1;2;3} 动态传递给此公式。我尝试使用 Excel 帮助中的示例:

ROW(INDIRECT("1:" & $D))

但它给出了一个值错误。如何在数组中得到这个序列?

第二个问题:如果可以的话,如何得到降序{3;2;1;0}

这是因为 ROW 生成了一个 垂直 数组,而你需要一个 水平 数组。

因此,使用:

TRANSPOSE(ROW(INDIRECT("1:"&$D)))

由于 INDIRECTOFFSET 都是 volatile 函数,我个人更喜欢:

=TRANSPOSE(LINEST($B:INDEX($B2:$B1048576,$D),$A:INDEX($A2:$A1048576,$D)^TRANSPOSE(ROW(INDEX(A:A,1):INDEX(A:A,$D)))))

此致