每个 unique/distinct 值的计算
Calculations for every unique/distinct values
我有一个非常大的数据集需要处理,在我的计算中有三列很重要。我们将不同的列称为 [A]、[B] 和 [C]。在 [A] 中,我有一个不同公司名称的列表,其中每个公司名称可能会出现多次。我为数据创建了一个 table 并按字母顺序对公司名称进行了排序。假设我在 A2:A5 中有公司名称 X,需要完成的计算是 SUMPRODUCT(B2:B5;C2:C5)/SUM(C2:C5)。我如何为每个 unique/distinct 公司名称计算此值并以漂亮的方式显示结果?
将两个 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))
请注意,我将您的 SUM 更改为 SUMIFS 以使生活更轻松。
在新列 D 中使用以下公式,例如在 D2 中:
=IF(A2<>A1,SUMPRODUCT(--($A:$A=A2)*$B:$B*$C:$C)/SUMIF($A:$A,A2,$C:$C),"")
并在 A 中的值发生变化时向下拖动它会写入结果
更改 A2:A10、B2:B10 和 C2:C10 以对应您的最后一行并保留 $ 用于固定引用
为了对应你的设置,我写了“;”在以下内容中:
=IF(A2<>A1;SUMPRODUCT(--($A:$A=A2)*$B:$B*$C:$C)/SUMIF($A:$A;A2;$C:$C);"")
我有一个非常大的数据集需要处理,在我的计算中有三列很重要。我们将不同的列称为 [A]、[B] 和 [C]。在 [A] 中,我有一个不同公司名称的列表,其中每个公司名称可能会出现多次。我为数据创建了一个 table 并按字母顺序对公司名称进行了排序。假设我在 A2:A5 中有公司名称 X,需要完成的计算是 SUMPRODUCT(B2:B5;C2:C5)/SUM(C2:C5)。我如何为每个 unique/distinct 公司名称计算此值并以漂亮的方式显示结果?
将两个 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))
请注意,我将您的 SUM 更改为 SUMIFS 以使生活更轻松。
在新列 D 中使用以下公式,例如在 D2 中:
=IF(A2<>A1,SUMPRODUCT(--($A:$A=A2)*$B:$B*$C:$C)/SUMIF($A:$A,A2,$C:$C),"")
并在 A 中的值发生变化时向下拖动它会写入结果
更改 A2:A10、B2:B10 和 C2:C10 以对应您的最后一行并保留 $ 用于固定引用
为了对应你的设置,我写了“;”在以下内容中:
=IF(A2<>A1;SUMPRODUCT(--($A:$A=A2)*$B:$B*$C:$C)/SUMIF($A:$A;A2;$C:$C);"")