查找过去的事件

Finding past occurrence

我有一组交易的股票单位(按日期从旧到新排序)。

我想找到之前交易的数量。

这是一个示例数据集:

 Date(A) Type(B) Stock(C) Qty(D) PrevQty(E) CumulativeQty(F) 
 2016-01-03 Buy MSFT 100 0 100
 2016-01-04 Buy GOOG 500 0 500
 2016-01-05 Buy MSFT 100 100 200
 2016-01-06 Sell MSFT 100 100 100

我可以通过以下方式计算 CumulativeQty:

=SUMIFS(D:D,C:C, C4,A:A, "<=" &A4)

问题:如何计算PrevQty

上一个数量

{=index(D:D,match((A4-1)&C4,A:A&C:C,0))}

更新: 对于非连续日期,要从相同的股票名称中获取值,您需要进行 2 次排序 - 1 个日期从旧到新,2 个股票名称从 A-Z 或 Z-A

将第一行(最旧的股票)留空,并从该股票名称的第二旧行开始计算公式。加上 N/A 处理。

 {=IFERROR(INDEX(D:D,MATCH(MAX(A:A3)&C4,A:A&C:C,0)),0)}

示例如下:(单元格 E4 中的上述公式)

此公式专为您的单元格 E3 而设计。

=IFERROR(LOOKUP(2,1/($C:$C2=$C3),$D:$D2),0)

基本上,它会查找 C3 中最后一次出现的 'Stock'。然而,最后一次出现自然是在 C3 本身。因此,公式所在的行被排除在查找最后一次出现的范围之外。

假定您的第一个数据位于工作表的第 2 行。