[英]Sum values based on first occurrence of other column using excel formula and criteria
[英]Sum values based on first occurrence of other column using excel formula
假设我在Excel电子表格中有以下两列
A B
1 10
1 10
1 10
2 20
3 5
3 5
我想使用公式将B列中代表值首次出现的B列值相加。 因此,我希望得到以下结果:
result = B1+B4+B5 = 35
即,对B列求和,其中B列与A列在同一行中。在我的情况下,如果Ai = Aj
,则Bi=Bj
,其中i,j
代表行位置。 这意味着,如果A列中的两行具有相同的值,则B列中其对应的值将相同。 我可以按A列的值对值进行排序,但是我更喜欢有一个无论排序如何都起作用的公式。
我发现这篇文章涉及相同的问题,但我无法理解所提出的解决方案。
使用SUMPRODUCT和COUNTIF:
=SUMPRODUCT(B1:B6/COUNTIF(A1:A6,A1:A6))
这里分步说明:
COUNTIF(A1:A6, A1:A6)
将产生一个频率为A1:A6
的数组。 在我们的情况下,它将是: {3, 3, 3, 1, 2, 2}
{10, 10, 10, 20, 5, 5}/{3, 3, 3, 1, 2, 2}
。 结果将是: {3.33, 3.33, 3.33, 20, 2.5, 2.5}
。 它将每个值替换为其组的平均值。 (3.33+3.33+3.33) + 20 + (2.5+2.5=35)=35
。 使用以上技巧,我们可以得到与将A
列中每个组的第一个元素相加所得的结果相同的结果。
要使其动态化,使其随数据集的增长和缩小,请使用以下命令:
=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))))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.