0

我有一个名为“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

表格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   

预期结果

谢谢你的帮助。

4

2 回答 2

0

在 ColumnPrevOpen中,使用:

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

在 ColumnPrevClose中,使用:

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

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

于 2018-07-24T13:53:50.440 回答
0

这是解决方案

  1. 首先选择从 A1 到“关闭”列的最后一个单元格的单元格,然后按 ctrl+alt+f3。出现该框的名称为“数据”

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

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

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

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

于 2018-07-24T13:42:53.707 回答