查找过去的事件
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 行。
我有一组交易的股票单位(按日期从旧到新排序)。
我想找到之前交易的数量。
这是一个示例数据集:
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 行。