1

我有一个 excel 文件,其中包含如下数据

CUSIP   Quantity  Date           Price
AF0      500000   5/6/2013      1
AE4      400000   5/6/2013      1.0825
AE4      500      5/6/2013      1

我需要检查列CUSIPDate 如果我有CUSIP相同的重复,date那么我需要进行以下计算。

1.需要Quantity为它们添加而不是显示重复记录只需要显示一条记录(数量之和)。

2.需要对价格进行计算,如下所示

NewPrice = ((400000 * 1.0825) + (500 * 1.00))/(400000 + 500) = 1.08148

例如在使用上面的数据需要显示像这样的输出

CUSIP   Quantity  Date          Price
AF0     500000    5/6/2013      1
AE4     400500    5/6/2013      1.082397004

   

如何使用 LOOKUP 在 excel 文件中实现这一点?

4

1 回答 1

1

好的,经过相当多的研究(顺便说一句有趣的问题!),我想出了这个:

=IF(COUNTIF($A$2:A2,A2)>1,"",SUMIF(A:A,A2,B:B))
=IF(COUNTIF($A$2:A2,A2)>1,"",SUMPRODUCT(--(A:A=A2),B:B,D:D)/SUMIF(A:A,A2,B:B))

将它们分别放在单元格 D2 和 E2 中(这是PriceCUSIP 行之后的下一列AF0)。

并填写到工作表的底部以获得加权平均价格或每个 CUSIP。

第一个公式为您提供 CUSIP 的总量,第二个公式为您提供平均价格。

计算后复制并粘贴这两列的值。

放置一个过滤器,将总数量和平均价格为空的所有行删除,并排序以使工作表整洁。

让我知道这是否适合您!我在您的示例数据上进行了尝试,它似乎正在工作。这是我第一次使用SUMPRODUCT^^;


SUMPRODUCT(--(A:A=A2)

该位返回列 A 中等于行的 CUSIP 的行。

SUMPRODUCT(--(A:A=A2),B:B,D:D

这个附加位告诉 excel 将上面找到的每个返回行的 B 列和 D 列中的值相乘,SUMPRODUCT并将每个结果加在一起。

编辑: 我实际上忘记了日期。您也许可以添加一个帮助列,您将在其中生成一个标识符来分隔不同的日期。要做到这一点,您必须制作一个concatenate.

因此,在单元格 F2 中,您输入:

 =CONCATENATE(A2,C2)

在单元格 D2 和 E2 的公式中,您必须将它们更改为:

=IF(COUNTIF($F$2:F2,F2)>1,"",SUMIF(A:A,A2,B:B))
=IF(COUNTIF($F$2:F2,F2)>1,"",SUMPRODUCT(--(A:A=A2),B:B,D:D)/SUMIF(A:A,A2,B:B))

重新编辑:糟糕,引用错误。现在修好了。

于 2013-05-08T18:08:38.490 回答