如何检查重复的行,并计算在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
我需要检查列CUSIP
和Date
如果我有重复的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:哎呀,把错误的参考。 现在修好了