我想知道如何在Excel工作表中为以下长公式给出简洁的公式:
= (A1*A6)+(B1*B6)+(C1*C6)...
我使用求和函数还是为此使用其他函数?我认为使用带有SUM
功能的冒号应该会有所帮助,但我不知道如何使用它。
我想知道如何在Excel工作表中为以下长公式给出简洁的公式:
= (A1*A6)+(B1*B6)+(C1*C6)...
我使用求和函数还是为此使用其他函数?我认为使用带有SUM
功能的冒号应该会有所帮助,但我不知道如何使用它。
Answers:
您正在寻找SUMPRODUCT函数。
=SUMPRODUCT(A1:C1,A6:C6)
这将返回两个(或多个)范围内相应项目的乘积之和。
从链接到的Microsoft文档中可以看到,范围不必是单行或单列(尽管它们必须具有相同的尺寸)。
SUMPRODUCT最多可以将255个不同范围的值相乘。例如=SUMPRODUCT(A1:C1,A6:C6,A11:C11)
与相同=A1*A6*A11+B1*B6*B11+C1*C6*C11
。
SUM
函数仅添加元素而无法工作。您需要将值相乘,然后传递给SUM,例如=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)
当然,您也可以使用=A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6
它产生与输入几乎相同的输入效果SUM
有许多更好的解决方案。一种方法是使用数组公式。您可以在那看到像您一样的确切示例:
数组公式语法
通常,数组公式使用标准公式语法。它们都以等号(=)开头,并且您可以在数组公式中使用大多数内置的Excel函数。关键区别在于,使用数组公式时,请按Ctrl+ Shift+ Enter输入公式。执行此操作时,Excel会用大括号括住数组公式-如果您手动键入大括号,则公式将转换为文本字符串,将无法使用。
数组函数是构建复杂公式的一种非常有效的方法。数组公式
=SUM(C2:C11*D2:D11)
与此相同:=SUM(C2*D2,C3*D3,C4*D4,C5*D5,C6*D6,C7*D7,C8*D8,C9*D9,C10*D10,C11*D11).
要在您的情况下使用数组公式,可以键入(当然,您需要相应地更改数组的最后一个元素)
=SUM(A1:E1*A6:E6)
然后按Ctrl+ Shift+Enter
数组公式是一个非常强大的工具。但是请小心使用。每次需要编辑时,都不要忘记按Ctrl+ Shift+Enter
为什么要使用数组公式?
如果您有在Excel中使用公式的经验,则知道可以执行一些相当复杂的操作。例如,您可以计算任何给定年份的贷款总成本。您可以使用数组公式执行复杂的任务,例如:
计算一系列单元格中包含的字符数。
仅对满足某些条件的数字求和,例如范围内的最小值或介于上下边界之间的数字。
将值范围中的每n个值相加。
数组公式还具有以下优点:
一致性:如果从E2向下单击任何单元格,则会看到相同的公式。这种一致性可以帮助确保更高的准确性。
安全性:您不能覆盖多单元数组公式的组成部分。例如,单击单元格E3,然后按Delete。您必须选择整个单元格范围(E2至E11)并更改整个数组的公式,或者将数组保持原样。作为一项附加的安全措施,您必须按Ctrl+ Shift+ Enter确认对公式的更改。
较小的文件大小:您通常可以使用单个数组公式而不是多个中间公式。例如,工作簿使用一个数组公式来计算E列中的结果。如果使用标准公式(例如= C2 * D2,C3 * D3,C4 * D4…),则将使用11个不同的公式来计算相同的结果。
由于访问模式是已知的,因此速度也更快。现在,无需分别进行11种不同的计算,而是可以利用CPU中的多个内核和SIMD单元将其矢量化并并行完成
MOD
)将导致SUMPRODUCT
中断,然后您必须将其替换为Array公式。更不用说每个版本的Office都已添加了更常用的数组公式作为官方功能(例如,MAXIFS
在365中)。如果数组公式缓慢,笨拙且中断,则可能需要优化代码。当然,由于PowerQuery是附加的外接程序扩展,许多公司(由于各种原因)不会在企业构建包中包括它,因此对于分布式业务而言,它是劣等的解决方案。
如果将数字列表放在列而不是行中(例如两列A和B),则可以使用= Sumproduct(A:A,B:B)函数。它将为您提供与A和B列中的数字一样多的乘积。
您可以根据需要在Sumproduct函数中使用任意多的列
如果第1行和第6行除了您想要的内容之外没有其他内容SUMPRODUCT()
,则可以使用此注释中提到的想法。在您的问题中概述的情况下,您将使用=SUMPRODUCT(1:1,6:6)
SUMPRODUCT(1:1,2:2)
提供的答案的评论给出了答案,我根据该评论给出了答案,阐述了如何根据原始问题使用它以及对此有何限制。