MS Excel LINEST,TREND,LOGEST和GROWTH函数中缺less值

我在Excel 2003中使用GROWTH(或LINEST或TREND或LOGEST,都会造成同样的问题)函数。但是,如果缺less某些数据,函数会拒绝提供结果:

在这里输入图像说明

你可以在这里下载文件 。

有没有解决办法? 寻找简单而优雅的解决scheme。

  1. 我不希望摆脱缺失值明显的解决方法 – 这将意味着删除列,这也将损坏graphics,这将使我的其他表中的问题,我有更多的行和缺less的数据不同列。 其他显而易见的解决方法是使用一个数据进行回归,另一个用于graphics,但是又一次,这是烦人的,只会使工作表混乱!

  2. 有没有办法告诉excell – 这个值是NA?

  3. 另一个想法是跳过expression式中缺less的值。 是否有可能解决一组不连续的单元格? 像在我的例子中一样,不要使用=GROWTH($B2:$AH2; $B1:$AH1; B1) ,而应该使用类似于:

    =GROWTH({$B2:$I2,$K2:$AH2}; {$B1:$I1,$K1:$AH1}; B1)

  4. 我当然想避免写我自己的表情。 我需要向同事解释如何做到这一点,这将更加复杂。 我想要一个简单而优雅的解决scheme。

我知道这是旧的…但如果你或其他人可能仍然在寻找答案,你有没有尝试使用FORECASTfunction? 它将计算缺less值的趋势(只要没有任何“#N / A”单元格)。

在我的情况下,我需要创build一个缺失值的无缝图,但是我也需要从数据中计算一个趋势。 因此,首先我将图表链接到一个数据集,为每个缺失的值放置一个#N / A:例如IF(ISBLANK(B2),NA(),B2)

但是,我会用原始数据计算预测数字: =FORECAST(B1,$B2:$AH2,$B1:$AH1)

除非我错过了一些东西,否则应该照顾它。 基本上,最后有两行相同的数字,但其中一个空白表示FORECAST计算,另一个空白表示NA()

如果你知道这个诀窍,结果是“微不足道的”。

要使用缺less值的LINEST,您需要照常创buildXmatrix(r行c列)和Y向量(r行1列)。 您还需要在Xmatrix中创build一个附加列作为指示variables。 将此列立即放在Xmatrix的左侧。 因此,如果Xmatrix从列B开始,则将列中的附加列置于列A中。对于您要省略的每一行,将此指标值设置为零。 将此指标值设置为您想要包含的每一行。 这个指标variables乘以Xmatrix中的每一列和Y向量。 在电子表格的其他地方放置这个新的增强Xmatrix和新的Y向量。 你现在应该有一个新的Xmatrix(R行C + 1列)和Yvector与零行直行横跨每一行被省略。 这是关键!

现在使用LINEST函数,指定整个Y向量和扩展的r×(c + 1)Xmatrix(包括指标列作为前两个函数参数“False”(即零)为第三个参数是“TRUE”(即一个)或“FALSE”(即零)作为第四个函数参数,正确的参数估计出现在LINEST输出的第一行,其他所有的LINEST输出值除了第五行和第二列(残差平方和)的值之外,如果您指定了“TRUE”以获得统计信息,那么它们是错误的。

如果您将第四个函数参数指定为“TRUE”以获取统计信息,则需要更正错误值的输出。 扩展输出的第2,3和4行中的值不正确; 行5列1中的值也是不正确的。 你需要修复它们。

在工作表的其他地方制作LINEST输出的第一行的副本。 如果您为统计信息指定了“TRUE”,则在该副本下面保留四个空行。 将第5行第2列值从原始LINEST输出复制到新输出空间的第5列第2列

第一步:计算正确的自由度数以replaceLINEST输出的第4行第2列中的值。 查找模型中的参数数量; 这是c + 1。 您可以使用COUNT函数来计算展开的Xmatrix中的列数。 接下来将Xmatrix的指标列中的所有值相加。 假设四行都有零值。 使用SUM函数:这给出了r – 4 =指标栏中具有“1”的行数。 正确的自由度是不同的:SUM(指示器列) – COUNT(增加的Xmatrix列)。 这是新的输出空间的第4行第2列中应该放置的值。

第二步:修复第二行和第三行第二列。在新的输出空间中,将原始LINEST输出中错误的df(第4行第2列)除以正确的df(第4行第2列)。 取这个商的平方根。 将原始LINEST输出空间中的第2行和第3行第2列中的值乘以该校正因子,以获得正确的参数标准误差和Y的正确标准误差。

第三步:修正回归的平方和。 原始的LINEST输出具有因输出的第5列第1列中的平均值的回归未校正而导致的平方和的值; 我们希望回归的平方和的平方和。 我们需要计算平均值的修正。 这是Yvector值平方的总和除以指标列值的总和。 从原始LINEST输出的第5列第1列中的值中减去此值,并将答案放在新输出空间的第5列第1列中。

第四步:修正第四行第一列的F比值。我们需要计算由于回归和由于残差引起的均方。 由于回归的均方(F分子中的分子)是新输出空间的第5列第1列中的值除以在加强之前的原始Xmatrix中的列数c。 由于残差(F比率中的分母)的均方是新输出空间的第5列第2列除以新输出空间的第4列第2列。 从这两个中间值计算F比率,并将结果放在新输出空间的第4行第1列。

第五步:校正第三行第一列中的R平方值。使用新输出空间的值,这是1-(第五行第二列除以第五列第一列和第五列第二列的总和)。

检查你的工作:在电子表格的其他地方复制增广的Xmatrix和Y向量。 对于指标variables中有零的行,用零replace任何条目。 删除行中的所有单元格为零,将单元格向上移动。 你现在应该有一个Xmatrix和Y向量,行数less,但没有缺失值。 删除指标栏。 现在使用LINEST来为这个缩减的数据集build立一个回归模型,但是这次把第三个参数设置为TRUE(包括一个常量)。 这些结果应该与新输出空间中的结果相同。

我的解决scheme由两部分组成:

  1. 为了避免在数据丢失的单元格中放置图表中的间隙=NA()函数 – 它会产生#N/A错误,并且这些错误types由图表完全按照您的要求处理:行被插入到围绕丢失的可用点之间一。 在这里阅读更多: http : //www.j-walk.com/ss/excel/usertips/tip024.htm
  2. 如果你需要一个趋势线 – 为什么你不使用内置的例程呢? 我为您的数据添加了一个指数,它适合您的GROWTH计算值的100%。 它也正确处理#N #N/A 为了确保趋势线符合您的数据 – 只需用两个相邻单元的平均值(您的样本为297)暂时replace#N/A – 然后计算GROWTH系列,您将看到它完全符合添加的趋势线。 请阅读有关趋势线的信息: http : //office.microsoft.com/en-001/excel-help/add-a-trendline-to-a-chart-HP005198462.aspx和http://www.computergaga.com/excel /2003/intermediate/charts/add_a_trendline.html

您的文件与应用的解决scheme是共享的: https : //www.dropbox.com/s/j7htrk9ih2jtcq6/TrendlineNA.xls

希望有帮助!