如何根据 excel table 中的前一个日期 select 数据?

How to select data based on previous date in a excel table?

我有一个名为 'equity' 的 MS Excel table,其中包含以下几列。

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

table-1

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

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

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   

ExpectedResult

感谢您的帮助。

这是解决方案

  1. 首先 select 从 A1 到第 "close" 列的最后一个单元格,然后按 ctrl+alt+f3。出现的框给出名称 "Data"

  2. 在上一个打开的列中添加此公式并将公式拖动到同一列中 table 的最后一个单元格

    =IFERROR(VLOOKUP(A2-1,Data,2,FALSE),"-")

  3. 在 Prev Close 列中添加此公式并同样拖动到最后一行

    =IFERROR(VLOOKUP(A2-1,Data,3,FALSE),"-")

在第 PrevOpen 列中,使用:

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

在第 PrevClose 列中,使用:

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

这些将 return 前一个日期的开盘/收盘值,忽略任何日期间隔,并忽略 table 排序顺序。