Excel formula 忽略具有多个自变量(已知)的Excel LINEST函数中的#N/As

Excel formula 忽略具有多个自变量(已知)的Excel LINEST函数中的#N/As,excel-formula,Excel Formula,我试图用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

我试图用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会导致返回一个值错误

我找到了一个单一自变量的解决方案(一列已知的_x,即将直线拟合到x,y数据),但我无法将其扩展到两个自变量(两列已知的_x,即将平面拟合到x,y,z数据)。我找到的解决方案如下:,公式(针对我的应用稍微修改)是:


这相当于
=LINEST(C1:C9,A1:A9)
,忽略了包含#N/A的行。

可能可以修改已发布链接中的公式,但它非常笨拙。缺失数据的最小二乘法可以视为一种回归,数值的权重为1,非数值的权重为0。根据这一观察结果,您可以尝试以下操作(在1x3范围内使用Ctrl+Shift+Enter):


这给出了平面的方程为
z=-0.2x+0.3y+5
,可以对照使用
LINEST(C1:C8,A1:B8)
的结果进行检查,并删除错误行。

是否可以将
N/A
更改为0?我认为0对于
Linest()
是有意义的。如果可以,只需将D列添加到
=IFERROR(C1;0)
@Makah如果将y值的
#N/A
更改为零,则需要将一列1添加到回归(x)矩阵中,并将该矩阵中的相应行更改为零。然后,对于
Linest()
,应该会得到相同的结果。这就是下面的公式,你解出来了吗@lori_êm回答说,我有一些打字错误,我不能让它工作。我不可能让你的公式工作。我使用的是相同的问题数据,你的公式得出#值@佩德罗77评论道。
=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(IF(ISNUMBER(C1:C9),C1:C9,),IF(ISNUMBER(C1:C9),CHOOSE({1,2,3},1,A1:A9,B1:B9),),)