【问题标题】:Excel: sum of a column, but apply a function to each cell before sumExcel:列的总和,但在总和之前对每个单元格应用一个函数
【发布时间】:2011-06-23 04:33:23
【问题描述】:

我有一个这样的基本 Excel 电子表格:

A B C D 等等。 10% 219.10 34.2 6.4 等等。 6% 45.10 36.2 7.4 等等。 4% 419.10 54.2 9.4 等等。 总计:[SUM] [SUM] [SUM](--更新-这里需要总计--)

我想将 B、C 和 D 列中的所有值相加。在执行 sum() 之前,每个单元格值都需要乘以 A 列中的 %

我可以手动创建一个新列来包含 % 计算,并将该列相加,但我希望在没有额外列的情况下这样做。

我发现this 我认为它在正确的轨道上,但在实施它时有点迷茫。

(计划将此计算写入基于简单 mysql 数据库中的值的 php 脚本创建的 excel 电子表格)

【问题讨论】:

  • (更新)-我的错,“等等”让一些人失望。想要每列下方的总和。
  • B5 将包含:=SUMPRODUCT(B2:B4, A2:A4)

标签: excel


【解决方案1】:

编辑

对于更新后的问题,您只需要(在 B5 中)

=SUMPRODUCT(B2:B4 * $A2:$A4)

向右复制


对于 E2,使用
=SUMPRODUCT(B2:D2 * $A2)

这意味着 B2*A2 + C2*A2 + D2*A2。

但是,你知道吗从数学上讲,它和

是一样的
  B2*A2 + C2*A2 + D2*A2
= A2 * (B2+C2+D2)

下面是哪个?

=A2*SUM(B2:D2)

查看您的 etc,如果您需要将其向右扩展,只需将 A 列锁定在 SUMPRODUCT 中,或使用 SUM。以下示例最多为 J

=SUMPRODUCT(B2:J2 * $A2)
=A2*SUM(B2:J2)

然后抄下来。

【讨论】:

  • +1,你不需要任何花哨的 Excel 魔法。只需使用最后一个公式。
  • 这是数组公式的一个特例。来自 O2K11:使用数组为执行类似于 SUMPRODUCT 的操作提供了更通用的解决方案。例如,您可以使用公式 =SUM(A2:B4^2) 并按 ⌘+RETURN 来计算 A2:B4 中元素的平方和。
  • 谢谢,SUMPRODUCT 正是我所追求的。
  • @dtbaker, @cyberwiki - 也许我遗漏了一些东西,但是为什么在这个琐碎的案例中需要除了最后一个公式之外的任何其他东西(尽管我会让 A2 成为绝对参考)?没有任何四舍五入或其他操作,由于分配属性,SUMPRODUCT 和最后一个公式应该相等。
【解决方案2】:

使用数组公式,例如http://office.microsoft.com/en-us/excel-help/introducing-array-formulas-in-excel-HA001087290.aspx

这些一般用 control-shift-enter 成语来表达

【讨论】:

  • 所以 B * A 的总和将被写为 {=A2:A4*B2:B4} (如果你使用 control-shift-enter 强制它作为一个数组计算,花括号会出现)
  • @cyberkiwi 您可以反过来运行计算,但鉴于 etc 写在右边,我假设总和 Ai*Bi 比 A * (B + C + D)
  • 正是你为什么要放一整行:)
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
  • 2018-11-15
相关资源
最近更新 更多