如何根据excel表格中的上一个日期选择数据?

如何根据excel表格中的上一个日期选择数据?,excel,excel-tables,Excel,Excel Tables,我有一个名为“equity”的MS Excel表格,下面有几列 Date Open Close PrevOpen PrevClose 18-Jul-18 99.8 101.9 19-Jul-18 100.7 102.1 20-Jul-18 101.2 103.7 23-Jul-18 102.1 99.8 24-Jul-18 101 102.8 对于每一行,我需要得到前一天的开盘价和收盘价。不管行的顺序如何 例如,我的

我有一个名为“equity”的MS Excel表格,下面有几列

Date        Open    Close   PrevOpen    PrevClose
18-Jul-18   99.8    101.9
19-Jul-18   100.7   102.1
20-Jul-18   101.2   103.7
23-Jul-18   102.1   99.8
24-Jul-18   101     102.8

对于每一行,我需要得到前一天的开盘价和收盘价。不管行的顺序如何

例如,我的第二行应该如下所示

Date        Open    Close   PrevOpen    PrevClose
18-Jul-18   99.8    101.9       
19-Jul-18   100.7   102.1   99.8        101.9
20-Jul-18   101.2   103.7       
23-Jul-18   102.1   99.8        
24-Jul-18   101     102.8   

谢谢您的帮助。

这是解决方案

  • 首先选择从A1到“close”列最后一个单元格的单元格,然后按ctrl+alt+f3。将出现一个名为“数据”的框

  • 在Prev open col中添加此公式,并将公式拖动到同一列中表格的最后一个单元格

    =IFERROR(VLOOKUP(A2-1,数据,2,假),“-”

  • 在Prev Close col中,添加此公式并将相同的拖动到最后一行

    =IFERROR(VLOOKUP(A2-1,数据,3,假),“-”


  • 在列
    PrevOpen
    中,使用:

    =IFERROR(INDEX([Open],MATCH(MAX(INDEX(([Date]<[@Date])*[Date],0)),[Date],0)),"")
    
    =IFERROR(INDEX([Close],MATCH(MAX(INDEX(([Date]<[@Date])*[Date],0)),[Date],0)),"")
    

    这些将返回上一个日期的打开/关闭值,忽略任何日期间隔,并忽略表排序顺序。

    列表中是否有跳过的日期?如果是这样,例如2018年7月23日,结果会是什么?@ffonz是的,有跳过的日期。由于周六和周日为市场假期,因此价目表仅在工作日提供。对于7月23日,数据应来自7月20日。您可能希望增加投票/