我确信这是其他人多次解决过的问题。
一群人准备进行测量(确切地说是家庭能源使用情况)。 所有这些人都会在不同的时间和不同的时间间隔做到这一点。
所以我从每个人那里获得的是一组{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)功能。
答案 0 :(得分:29)
我遇到了这个并且不愿意使用加载项,因为它很难与没有安装加载项的人共享表单。
我的同事设计了一个相对紧凑的清洁配方(使用一点魔法的代价很高)。
注意事项:
该公式的工作原理如下:
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
是命名范围)
答案 1 :(得分:5)
有两个功能,LINEST和TREND,您可以尝试查看哪些功能可以获得更好的效果。它们都采用已知X和Y的集合以及新的X值,并计算新的Y值。区别在于LINEST进行简单的线性回归,而TREND将首先尝试在回归之前找到适合您数据的曲线。
答案 2 :(得分:5)
最简单的方法可能如下:
在此处下载Excel插件:XlXtrFun™ Extra Functions for Microsoft Excel
使用函数intepolate()。 =插值($ A $ 1:$ A $ 3,$ B $ 1:$ B $ 3 D1,FALSE,FALSE)
A列和B列应包含您的输入,G列应包含所有日期值。公式进入E列。
答案 3 :(得分:2)
一种很好的图形方式,可以查看插值结果的适合程度:
使用Excel中的XY图表(而不是折线图)获取日期,值对并绘制图形。右键单击图形上的结果行,然后单击“添加趋势线”。有许多不同的选项可供选择使用哪种类型的曲线拟合。然后,您可以转到新创建的趋势线的属性,并显示等式和R平方值。
确保在格式化趋势线公式标签时,将数值格式设置为具有高精度,以便显示公式常量的所有有效数字。
答案 4 :(得分:2)
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帖子中,但我还没有足够的声望点。
答案 5 :(得分:1)
替代地
=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值的范围
更容易将其放入代码中。
答案 6 :(得分:1)
您可以使用Excel"趋势线"找出最适合您数据的公式。特征。使用该公式,您可以为y
x
x
替换为所需的x值在A12截面下:A16保持x
,B12:B16保持y
,而C12包含计算任何y
的公式{1}}。
我首先发布了答案here,但后来发现了这个问题