如何在 excel 中乘以具有相同 ID 的多个列

How to multiply multiple columns with the same ID in excel

我有一个数据框如下:

ID   ColB    ColC   ColD
102     2       1      2
103     2       3      4
104     3       3      2
104     6       7      5
105    33       3      3
105    22       2      2
106     1       3      2

我想填充一个新的列 E,每次出现一个 ID 时都会找到该列,并对这一行的 ColC 和 ColD 求和,然后将总和乘以 ColB。每次出现 ID 值时,应将所有这些相加,最终填充 table 个唯一 ID 值。

以 104 为例,它应该是这样的

= (B4) *(C4+D4) + (B5) *(C5+D5)
= (3)  *(3+2)   + (6)  *(7+5) = 87

我尝试了 PRODUCT() 和 SUMIF() 的组合,但是我没有得到想要的结果,因为我依赖于基于相同标识符的各种单元格的乘法和求和...

使用 SUMPRODUCT:

=SUMPRODUCT((A2:A8=104)*B2:B8,C2:C8+D2:D8)

不确定您正在寻找多少自动化,或者您希望如何 "clean" 得到答案。我会 post 一种你 可以 做到的方式。不一定是最好的或最干净的。您可以根据自己的口味进行调整。

首先,我做了一个 "scratch" 列 F。我把这个公式放在 F2 中:
=B2*(C2+D2) + B3*(C3+D3)
我将这个公式复制到所有行 F2:F8
这为所有行提供了所需的值,而不仅仅是重复项。接下来,在 E 列中,我通过仅显示具有重复行的值来处理此问题。 E2中的公式为:
=IF(A3=A2,F2,"")
您可以根据需要隐藏 F 列,或将其放在查看区域之外的另一列中。
YMMV

鉴于您希望在每次有新数据添加到 table 时自动执行根据 ID 查找 E 列总和的过程,并生成具有唯一 ID 的新 table并使用 E 列中的相应总和值,您可能想 #powerquery 试一试。

请参阅此 article 了解如何在您的 Excel 版本上使用 Power Query。我的演示使用 Excel 2016.

步骤是:

  1. 高亮数据范围,使用Data选项卡下的From Table函数将数据添加到Power Query Editor ;
  2. 使用 Add Column 选项卡下的 Custom Column 函数添加自定义列,公式如下:[ColB]*([ColC]+[ColD]) 您可以将新列命名为 ColE;
  3. 使用 Transform 选项卡下的 Group By 功能对列进行分组,如下所示:

  1. 关闭并加载结果到新工作表(默认)。

那么你应该有如下内容:

每次在源 table 中创建新条目时,只需右键单击输出中的某处 table 和 select 刷新(或转到 Data 选项卡单击 全部刷新 按钮)。

这里是后台代码,仅供参考。所有步骤均由内置函数执行,无需高级编码。干杯:)

let
    Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"ColB", Int64.Type}, {"ColC", Int64.Type}, {"ColD", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "ColE", each [ColB]*([ColC]+[ColD])),
    #"Grouped Rows" = Table.Group(#"Added Custom", {"ID"}, {{"ColE", each List.Sum([ColE]), type number}})
in
    #"Grouped Rows"