【发布时间】:2017-08-03 19:42:02
【问题描述】:
我正在尝试使用 LINEST 函数找到最适合一组 x、y、z 数据的平面方程。缺少一些 z 数据,这意味着 z 列中有 #N/As。例如:
A B C
(x) (y) (z)
1 1 1 5.1
2 2 1 5.4
3 3 1 5.7
4 1 2 #N/A
5 2 2 5.2
6 3 2 5.5
7 1 3 4.7
8 2 3 5
9 3 3 5.3
我想做=LINEST(C1:C9,A1:B9),但#N/A 会导致返回值错误。
我找到了单个自变量的解决方案(一列 known_x,即将一条线拟合到 x,y 数据),但我无法将它扩展到两个自变量(两个 known_x 的列,即拟合平面到 x、y、z 数据)。我找到的解决方案在这里:http://www.excelforum.com/excel-general/647448-linest-question.html,公式(针对我的应用稍作修改)是:
=LINEST(
N(OFFSET(C1:C9,SMALL(IF(ISNUMBER(C1:C9),ROW(C1:C9)-ROW(C1)),
ROW(INDIRECT("1:"&COUNT(C1:C9)))),0,1)),
N(OFFSET(A1:A9,SMALL(IF(ISNUMBER(C1:C9),ROW(C1:C9)-ROW(C1)),
ROW(INDIRECT("1:"&COUNT(C1:C9)))),0,1)),
)
相当于=LINEST(C1:C9,A1:A9),忽略包含#N/A的行。
【问题讨论】:
-
你能把
#N/A改成0吗?我认为 0 对Linest()有意义。如果可以,只需添加带有=IFERROR(C1;0)的D列 -
@Makah 如果将 y 值的
#N/A更改为零,则需要将一列 1 添加到回归 (x) 矩阵,并将此矩阵中的相应行更改为零.那么你应该得到与Linest()相同的结果。这基本上就是下面的公式所做的。 -
你解决了吗? @lori_m 回答接缝有一些错字,我不能让它工作。
标签: excel-formula