题
我确信这是其他人之前已经解决过很多次的问题。
一群人将进行测量(确切地说是家庭能源使用情况)。他们都会在不同的时间和不同的时间间隔这样做。
因此,我将从每个人那里得到一组 {date, value} 对,其中缺少日期。
我需要的是一组完整的 {date, value} 对,其中对于范围内的每个日期,都有一个值已知(测量或计算)。我希望一个简单的线性插值就足以满足这个项目的需要。
如果我假设它必须在 Excel 中完成。在这样的数据集中进行插值的最佳方法是什么(这样我每天都有一个值)?
谢谢。
笔记:当这些数据集完成后,我将确定斜率(即每天的使用情况),然后我们就可以开始进行逐户比较。
附加信息 在最初的一些建议之后:我不想手动找出测量集中的孔在哪里(太多不完整的测量集!!)。我正在寻找(现有的)自动为我做这件事的东西。所以如果我的输入是
{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)功能来解决这个(相当通用的)问题。
解决方案
最简单的方式做到这一可能如下:
下载的Excel加上: XlXtrFun™额外职能对于Microsoft Excel
使用功能intepolate().=插入($A$1:$A$3,$B1美元:$B3美元,D1,FALSE,FALSE)
列A和B中应包含你的输入,并列克应该包含所有您的日期的价值观。公式进入列E.
其他提示
我来这和是不愿意使用一个加,因为它使得难以分享这片的人没有加在安装。
我officemate设计了一个干净的公式,是比较紧凑(在昂贵的使用点魔术).
需要注意的事项:
该公式适用于:
- 使用
MATCH
功能找到行inputs
范围之前的价值正在搜索(例如3的价值就在3.5) - 使用
OFFSET
s选择平行的和下一个(在淡紫色) - 使用
FORECAST
建立一个线性内插法,使用只是这两个点,并得到的结果
- 使用
这个公式不可能做的推断;确保你的搜索值之间的终点(我这样做是在例如下面通过具有极端值)。
不知道,如果这个太复杂的人;但它有好处是非常的便携式(和更简单的过许多备用的解决办法)。
如果你想要复制粘贴式,这是:
=FORECAST(F3,OFFSET(inputs,MATCH(F3,inputs)-1,1,2,1),OFFSET(inputs,MATCH(F3,inputs)-1,0,2,1
(inputs
被一个叫范围内)
有一个不错的图形方式查看您的插值结果的匹配程度:
把你的日期,值对,并使用Excel中的XY图表(未折线图)绘制它们。在图表上的结果行单击鼠标右键,点击“添加趋势线”。有很多不同的选择,选择哪条曲线拟合的类型使用。然后就可以去新创建的趋势线的属性并显示该方程和R平方值。
确认,当你格式化趋势线公式标签,你设置的数字格式具有较高的精确度,使所有的公式常量的显著数字显示。
由以上YGA答案不处理的范围的情况下所需的X值是相同的参照范围的X值结束。使用YGA给出的例子,Excel公式将返回#DIV / 0!如果在9999的插补值被问到错误。这显然是部分原因YGA加入9999和-9999极端端点输入数据的范围,然后假设所有预测值是这两个数字之间。如果这种填充是不想要的或不可能的,另一种方式来避免#DIV / 0!误差是使用如下公式来检查的精确输入值匹配:
=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是其中内插的结果想要的值。
请注意:我刚才说这是原来的YGA发表评论,但我没有足够的信誉分又
替代地
=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的"趋势线"的功能。使用该公式可以计算 y
对于任何 x
- 创建的线性分散(x-y)为它(插入=>散);
- 创建Polynominal或移动平均趋势线,检查"显示公式 图"(右击系列=>增加的趋势线);
- 复制方程式进入细胞和替换
x
's与你期望的x值
在下图A12:拥有A16 x
's,B12:B16拥有 y
's,和C12含有的公式,计算 y
对于任何 x
.
我首先发表一个答案 在这里,, 但后来发现这个问题