【问题标题】:What is the dynamic solution to a linear interpolation of data in a row with missing values with an indefinite number of missing value sequences?对于具有不定数量缺失值序列的缺失值的行中数据的线性插值的动态解决方案是什么?
【发布时间】:2018-02-22 11:14:51
【问题描述】:

我有这个数据

Date        Data
8/25/2017   980
8/24/2017   64
8/23/2017   593   
8/22/2017   595
8/21/2017   
8/20/2017   
8/19/2017   794
8/18/2017   437
8/17/2017   
8/16/2017   
8/15/2017   
8/14/2017   629

如果我在 8 月 21 日的单元格中想要 (794-595)/3,在 8 月 22 日的单元格中想要 2*(794-595)/3 并且在 8 月 17 日类似的 (629-437)/4,2*(629- 437)/4 8 月 16 日等...

并且整个数据集中只有2个缺失的数据序列。但我希望能够在事先不知道丢失序列的数量的情况下完成所有这些工作。

如何在不考虑中间缺失值数量的情况下动态执行此操作?

【问题讨论】:

  • 不清楚您的公式是如何计算的。为什么22号是2*,8月17号有新公式,然后16号那个公式是2*[formula]/4
  • 要在列中执行它需要 vba 并且 Stack Overflow 不是我网站的代码。请展示您的尝试。
  • @BruceWayne 该公式用于简单的线性插值。例如,我有 5,,,10。线性插值需要我将 5、5+1.66、5+3.32、10 作为系列。
  • @Scott Craner。我不知道VBA。如果你不想回答,请节省你的精力,避免这个问题
  • 请参阅How to Ask - 我仍然不清楚您使用的公式,或者数字来自哪里。您在示例表中的数据是硬值,还是某个公式的结果?另外,我几乎可以保证你@ScottCraner 想回答你的问题。但是,如前所述,SO 不是“我的代码”网站。我们(通常)不太可能在 OP 不付出一些努力或尝试的情况下提供答案。到目前为止,您尝试过什么?

标签: excel dynamic linear-interpolation


【解决方案1】:

对于公式路线,您需要一个辅助列:

在该帮助列的第 2 行放置:

=IF(B2="",INDEX(B:B,MATCH(1E+99,$B$1:B1))+((ROW() - MATCH(1E+99,$B$1:B1))*(INDEX(B2:INDEX(B:B,MATCH(1E+99,B:B)),MATCH(TRUE,INDEX((B2:INDEX(B:B,MATCH(1E+99,B:B))<>""),),0))-INDEX(B:B,MATCH(1E+99,$B$1:B1)))/(MATCH(TRUE,INDEX((B2:INDEX(B:B,MATCH(1E+99,B:B))<>""),),0)+ROW()-1-MATCH(1E+99,$B$1:B1))),B2)

并向下复制范围

然后,如果您愿意,您可以将这些值复制并粘贴回原始数据。

【讨论】:

  • ...What? 哇!我什至不知道你是怎么知道从哪里开始的。 (也许我只是需要更多的咖啡?)
  • @BruceWayne 这是对我在其中一个工作簿中使用的公式的轻微修改。我以前也遇到过这个问题。
  • 完美答案!
  • 哇,斯科特!你真是个天才!
  • @AbhaySaini 下次请链接到原始问题并说明为什么您的问题不同,为什么给定的答案对您不起作用。因为如果我看到另一个问题,我会关闭这个问题。仅供参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2012-08-17
  • 1970-01-01
  • 2018-06-27
  • 2021-07-24
  • 1970-01-01
相关资源
最近更新 更多