如何检查重复的行,并计算在Excel文件中的行?

我有一个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 ,而不是显示重复的logging,只需要显示一个logging(数量的总和)。

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文件中实现这一点?

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

 =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(这是Price之后的下一列和CUSIP AF0的行)。

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

第一个公式给你CUSIP的总量,第二个公式给你的平均价格。

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

把一个filter,并删除总数量和平均价格是空白的所有行,并进行sorting,使工作表整洁。

让我知道这是否适合你! 我试了一下你的示例数据,它似乎工作。 这是我第一次使用SUMPRODUCT ^^;


SUMPRODUCT(--(A:A=A2)

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

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

这个附加位告诉Excel将上面find的每个返回行的列B和D中的值相乘, SUMPRODUCT将每个结果相加。

编辑:我其实忘了date。 你也许可以添加一个帮助者列,在那里你将生成一个标识符来分隔不同的date。 要做到这一点,你必须进行concatenate

因此,在F2单元格中,您input:

  =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)) 

reEDIT:哎呀,把错误的参考。 现在修好了