使用Excel公式计算第一次出现的其他列的总和值

假设我在Excel电子表格中有以下两列

AB 1 10 1 10 1 10 2 20 3 5 3 5 

我想从B列中总结出用A公式表示A列中第一次出现的值。 所以我期望得到以下结果:

 result = B1+B4+B5 = 35 

也就是对列B进行求和,其中任何唯一值存在于同一行,而列A中。在我的情况下,如果Ai = Aj ,则Bi=Bj ,其中i,j表示行位置。 这意味着如果来自A列的两行具有相同的值,则其来自B列的对应值是相同的。 我可以有按列A值sorting的值,但我更喜欢有一个公式,无论sorting工作。

我发现这篇文章提到了同样的问题,但提出的解决scheme我不能理解。

使用SUMPRODUCT和COUNTIF:

 =SUMPRODUCT(B1:B6/COUNTIF(A1:A6,A1:A6)) 

在这里输入图像说明


为了使这个dynamic,所以它随着数据集的增长和收缩使用这个:

 =SUMPRODUCT($B$1:INDEX(B:B,MATCH(1E+99,B:B))/COUNTIF($A$1:INDEX(A:A,MATCH(1E+99,B:B)),$A$1:INDEX(A:A,MATCH(1E+99,B:B)))) 

…或者只是SUMPRODUCT。

 =SUMPRODUCT(B2:B7, --(A2:A7<>A1:A6)) 

在这里输入图像说明