使用多个自变量在Excel LINEST函数中忽略零(或空格)

时间:2017-08-03 11:51:12

标签: excel regression linear-regression missing-data

我想通过linest运行多个(!)因子分析,再次排除包含零的所有行(或者如果这是更容易的空白单元格)。有没有办法可以使用linest函数来做到这一点?

我尝试使用以下公式,我在其他地方找到了,但除了#VALUE之外什么也得不到!。

=COUNTIF($A$2:$A$3660;A2)

FYI - Y值是列C,我的X值是D列和D列。即

提前致谢! 儒略

enter image description here

3 个答案:

答案 0 :(得分:2)

不确定是否已解决此问题,但我一直在尝试自己做此事并找到了解决方案。我们现在可以使用FILTER函数。如果范围是C15:C26,则应该可以执行以下操作

=LINEST(FILTER(C15:C26,C15:C26<>0,))

答案 1 :(得分:0)

首先,我建议您过滤数据以排除任何列中包含零或空白单元格的行,然后将过滤后的数据复制到工作表的另一个区域或单独的工作表中。然后,您只需使用LINEST

否则,您可以使用以下需要使用CONTROL+SHIFT+ENTER ...

确认的公式
=LINEST(INDEX(C:C,N(IF(1,MODE.MULT(IF(MMULT(--(C15:E26=0),TRANSPOSE(COLUMN(C15:E26))^0)=0,ROW(C15:E26)*{1,1}))))),INDEX(D:E,N(IF(1,MODE.MULT(IF(MMULT(--(C15:E26=0),TRANSPOSE(COLUMN(C15:E26))^0)=0,ROW(C15:E26)*{1,1})))),N(IF(1,{1,2}))),1,1)

希望这有帮助!

答案 2 :(得分:0)

我使用函数 discard_empty 解决了空白单元格。该函数将范围转换为没有空值的值,并且LINEST起作用。

=LINEST(discard_empty(A1:A9))

Function discard_empty(range_in As Range)
Dim arr_temp() As Variant
Dim arr_new() As Variant
Dim i As Integer
Dim j As Integer
Dim k As Integer
    arr_temp = range_in
    For k = LBound(arr_temp, 1) To UBound(arr_temp, 1)
        For j = LBound(arr_temp, 2) To UBound(arr_temp, 2)
            ReDim Preserve arr_new(i)
            arr_new(i) = arr_temp(k, j)
            i = i + 1
        Next j
    Next k
    arr_temp = arr_new
    Erase arr_new
    j = 0
    For k = LBound(arr_temp) To UBound(arr_temp)
       If arr_temp(k) <> Empty Then
            ReDim Preserve arr_new(j)
            arr_new(j) = arr_temp(k)
            j = j + 1
        End If
    Next k
    discard_empty = arr_new
End Function