在Excel中插入数据点

我相信这是其他人以前解决过的那种问题。

一群人将要做的测量(家庭能源使用是准确的)。 他们都将在不同的时间和不同的时间间隔做到这一点。

所以我从每个人那里得到的是一组{date,价值}对,其中在date中缺lessdate。

我需要的是一组完整的{date,值}对,其中每个date的范围内的值是已知的(测量或计算)。 我期望一个简单的线性插值就足够了这个项目。

如果我认为它必须在Excel中完成。 在这样的数据集中插入最好的方法是什么(所以我每天都有价值)?

谢谢。

注意:当这些数据集完成后,我将确定斜率(即每天的使用率),由此我们可以开始进行家庭之间的比较。

附加信息在提出几点build议之后:我不想手动确定我的测量装置中的孔位置(太多不完整的测量装置!!)。 我正在寻找一些(现有的)自动为我做的。 所以如果我的意见是

{2009-06-01, 10} {2009-06-03, 20} {2009-06-06, 110} 

那么我期望自动获得

 {2009-06-01, 10} {2009-06-02, 15} {2009-06-03, 20} {2009-06-04, 50} {2009-06-05, 80} {2009-06-06, 110} 

是的,我可以编写这样的软件。 我只是希望有人已经有一个“准备运行”软件(Excel)function为这个(相当通用)的问题。

最简单的方法可能如下:

  1. 在这里下载Excel加载项: 用于Microsoft Excel的XlXtrFun™额外function

  2. 使用函数intepolate()。 =插值($ A $ 1:$ A $ 3,$ B $ 1:$ B $ 3 D1,FALSE,FALSE)

列A和B应该包含你的input,列G应该包含你的所有date值。 公式进入E栏

我遇到过这种情况,不愿意使用加载项,因为与没有安装加载项的人共享表单非常困难。

我的办公室devise了一个相对紧凑的清洁配方(使用一点魔法的代价很高)。

注意事项:

  • 该公式的工作原理是:

    • 使用MATCH函数在正在search的值之前查找inputs范围内的行(例如,3是3.5之前的值)
    • 使用OFFSET sselect该线的平方和下一个(浅紫色)
    • 使用FORECAST只用这两个点build立一个线性插值,并得到结果
  • 这个公式不能做外推。 确保您的search值在端点之间(我在下面的示例中通过具有极端值来执行此操作)。

不知道这对于人们来说太复杂了。 但是它具有非常便携的优点(并且比许多替代解决scheme更简单)。

如果您要复制粘贴公式,则是:

=FORECAST(F3,OFFSET(inputs,MATCH(F3,inputs)-1,1,2,1),OFFSET(inputs,MATCH(F3,inputs)-1,0,2,1

inputs是一个命名范围)

有两个函数, LINEST和TREND ,你可以尝试看看哪一个给你更好的结果。 它们都带有一组已知的X和Y以及一个新的X值,并计算一个新的Y值。 不同之处在于LINEST做了一个简单的线性回归,而TREND将首先尝试在回归之前find适合您的数据的曲线。

一个很好的graphics方法来看看你的插值结果是否适合:

把你的date,值对,并使用Excel中的XY图(而不是折线图)对它们进行graphics化。 右键单击graphics上的结果线,然后单击“添加趋势线”。 有很多不同的选项来select使用哪种types的曲线拟合。 然后,您可以转到新创build的趋势线的属性,并显示公式和R平方值。

确保在格式化趋势线公式标签时,将数值格式设置为具有高精度,以便显示公式常数的所有有效数字。

YGA上面的答案不处理所需的X值与参考范围的X值相同的范围末端情况。 使用YGA给出的例子,excel公式会返回#DIV / 0! 错误,如果在9999的内插值被要求。 这显然是YGA将9999和-9999的极限值添加到input数据范围,然后假定所有预测值都在这两个数值之间的原因的一部分。 如果这种填充是不希望的或者不可能的话,另一种避免#DIV / 0的方法是! 错误是使用以下公式检查确切的input值匹配:

 =IF(ISNA(MATCH(F3,inputs,0)),FORECAST(F3,OFFSET(inputs,MATCH(F3,inputs)-1,1,2,1),OFFSET(inputs,MATCH(F3,inputs)-1,0,2,1)),OFFSET(inputs,MATCH(F3,inputs)-1,1,1,1)) 

其中F3是插值结果所需的值。

注意:我只是将这个作为注释添加到原始YGApost中,但是我还没有足够的声望点。

或者。

 =INDEX(yVals,MATCH(J7,xVals,1))+(J7-MATCH(J7,xVals,1))*(INDEX(yVals,MATCH(J7,xVals,1)+1)-INDEX(yVals,MATCH(J7,xVals,1)))/(INDEX(xVals,MATCH(J7,xVals,1)+1)-MATCH(J7,xVals,1)) 

其中j7是x值。

xvals是x值的范围yvals是y值的范围

更容易把这个代码。

您可以使用Excel的“趋势线”function找出哪个公式最适合您的数据。 使用该公式,可以计算任意x y

  1. 为它创build线性散射(XY)(Insert => Scatter);
  2. 创build多项式或移动平均趋势线,选中“在图表上显示公式”(右键单击系列=>添加趋势线);
  3. 将公式复制到单元格中,并用所需的x值replacex

在A12以下的屏幕截图中:A16保存x ,B12:B16保存y ,C12包含计算任意x y公式。

Excel插值

我第一次在这里发布了一个答案,但后来发现这个问题