2017-06-18 158 views
2

我有一个非常大的数据集,我需要处理,并且在我的计算中有三栏感兴趣。我们称不同的列[A],[B]和[C]。在[A]中,我有一个不同公司名称的列表,其中每个公司名称可能会出现多次。我创建了一个数据表并按字母顺序排列公司名称。假设我在A2:A5中有公司名称X,并且需要完成的计算是SUMPRODUCT(B2:B5; C2:C5)/ SUM(C2:C5)。我如何计算每个独特/独特的公司名称,并以良好的方式呈现结果?每个独特/不同值的计算

回答

1

使用以下公式中的新列d例如在D2:

=IF(A2<>A1,SUMPRODUCT(--($A$2:$A$10=A2)*$B$2:$B$10*$C$2:$C$10)/SUMIF($A$2:$A$10,A2,$C$2:$C$10),"") 

并将其向下拖动每当在A的值变化,它会写结果

变化A2:A10,B2 :B10和C2:C10对应您的最后一行并保留$用于固定参考
为了符合您的设置,我写了“;”在下面:

=IF(A2<>A1;SUMPRODUCT(--($A$2:$A$10=A2)*$B$2:$B$10*$C$2:$C$10)/SUMIF($A$2:$A$10;A2;$C$2:$C$10);"") 
+0

非常感谢! :) – user361695

0

将两个INDEX函数连同:作为范围。

=IF(A2<>A3, SUMPRODUCT(INDEX(B:B, MATCH(A2, A:A, 0)):INDEX(B:B, MATCH(A2&"z", A:A)), INDEX(C:C, MATCH(A2, A:A, 0)):INDEX(C:C, MATCH(A2&"z", A:A)))/SUMIFS(C:C, A:A, A2), TEXT(,)) 

第一次发生时发现,

INDEX(B:B, MATCH(A2, A:A, 0)) 

最后一次出现(在排序的数据)发现,

INDEX(B:B, MATCH(A2&"z", A:A)) 

enter image description here

请注意,我改变了你SUM到SUMIFS让生活变得更轻松。

+0

非常感谢! :) – user361695