Excel如何得到满足多个条件的值的和?
有一组数据,我们要在去掉一些数据后,求剩余数据的总和,如下图,需要数据区除代码FA、PD、SS外的分数总和。
您可以使用以下公式:
=SUM(B2:I2)-(SUMIF(b 1: I 1,“FA”,B2:I2) SUMIF(B1:I1,“PD”,B2:I2) SUMIF(B1:I1,“SS”,b 2: I 2))
但是如果数据很多,这个公式就会很长,不简洁。此时,我们可以使用SUMPRODUCT函数的公式:
=SUM(b 2: I2)-SUM product(((b 1: i1)=({“FA”;“PD”;" SS"}))*(B2:I2))
下面将解释这个公式的工作原理。公式的主要部分:
SUMPRODUCT(((b 1: i1)=({“FA”;“PD”;" SS"}))*(B2:I2))
它由两部分组成:
((b 1: i1)=({“FA”;“PD”;" SS"}))
和
(B2:I2)
其中,(B2:I2)被转换为由单元格区域中的数值组成的单行数组:{10,10,10,10,10,10,10,10,10}。很容易理解。
现在主要看一下:
((b 1: i1)=({“FA”;“PD”;" SS"}))
Excel将单元格区域B1:I1中的每个值依次与“FA”、“PD”和“SS”进行比较,生成一个3行8列的数组:
{假,真,假,假,假,假,假,假,假;假,假,假,假,真,假,假,假;假,假,假,假,假,假,真,假}
第一行是B1:I1中每个值与“FA”比较的结果,第二行是与“PD”比较的结果,第三行是与“SS”比较的结果。如下图所示。
将上面生成的两个中间数组相乘:
((b 1: i1)=({“FA”;“PD”;" SS"}))*(B2:I2)
那就是:
{假,真,假,假,假,假,假,假,假;假,假,假,假,真,假,假,假;假,假,假,假,假,假,真,假}*{10,10,10,10,10,10,10,10,10,10}
第一个数组的每一行中的每个元素乘以第二个数组中的相应元素,得到:
{0,10,0,0,0,0,0,0;0,0,0,0,10,0,0,0;0,0,0,0,0,0,10,0}
传递给SUMPRODUCT函数:
SUMPRODUCT(((b 1: i1)=({“FA”;“PD”;" SS"}))*(B2:I2))
那就是:
SUMPRODUCT({0,10,0,0,0,0,0,0;0,0,0,0,10,0,0,0;0,0,0,0,0,0,10,0})
获取:
30
因此:
=SUM(B2:I2)-(SUMIF(b 1: I 1,“FA”,B2:I2) SUMIF(B1:I1,“PD”,B2:I2) SUMIF(B1:I1,“SS”,b 2: I 2))
=80-30
=50
版权声明:Excel如何得到满足多个条件的值的和?是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。