具有两个值的Excel sumifs引发错误

问题描述 投票:0回答:2

如果A是abccba而B是def,我试图得到列C的总和:

=SUMIFS(C2:C51;A2:A51;{"abc","cba"};B2:B51;"def")

但是该公式无效,不知道我的错误在哪里,因为这是在Google快速搜索中提出的。

谢谢您的建议。

excel sumifs
2个回答
2
投票

该公式对我有效,但是这可能与您的分隔符有关。根据您的Excel,窗口或位置设置,您可能需要使用逗号,作为分隔符,而不是分号;

关于您的公式,为完成起见,我也进行了相同的Google搜索,并以this reference结尾。除了一个关键步骤,即SUM(环绕着公式之外,公式中的逻辑似乎是正确的。这意味着,如果您的公式有效,则只会考虑第一个匹配项,但是总和将计算逻辑为True的每个条目。语法:

=SUM(SUMIFS(C2:C51,A2:A51,{"abc","cba"},B2:B51,"def"))

或用分号分隔:

=SUM(SUMIFS(C2:C51;A2:A51;{"abc";"cba"};B2:B51;"def"))

由于{array}选项似乎对您不起作用,所以我提出了一种解决方法,如下所示:

=SUMIFS(C1:C15;A1:A15;"abc";B1:B15;"def")+SUMIFS(C1:C15;A1:A15;"cba";B1:B15;"def")

这是一个比较笨拙的函数,但是通过将数据分成两个SUMIFS(函数并将结果相加在一起,可以达到相同的结果。


0
投票

[我可能会使用@Plutian答案(实际上我赞成),但是如果它可能对您有用,您可以将SUMPRODUCT与DOUBLE UNARY结合使用以获得所需的确切信息。

DOUBLE UNARY

SUMPRODUCT

我制作了一个这样的假数据集:

enter image description here

如您所见,只有突出显示的值符合您的要求(如果A=abc OR cba AND B=def,则]

我在E10中的公式是:

=SUMPRODUCT(--($A$2:$A$7="abc")+--($A$2:$A$7="cba");--($B$2:$B$7="def");$C$2:$C$7)

这是它的工作方式:

  1. ($A$2:$A$7="abc")如果满足条件,将返回True/False值的数组。
  2. 该数组,因为它位于双一元运算符--( your range )中,会将所有True/False值转换为1 or 0值。假设它的工作方式类似于您选择了一个仅包含1或0的单元格区域。因此,在这种情况下,它将返回一个数组,例如{1,0,1,0,1,0}
  3. --($A$2:$A$7="cba")将再次执行与步骤1或2完全相同的操作,但使用第二个选项。它将返回另一个值数组,在这种情况下,{0,1,0,1,0,1}
  4. --($A$2:$A$7="abc")+--($A$2:$A$7="cba")我们只是对两个数组求和,所以{1,0,1,0,1,0}+{0,1,0,1,0,1}={1,1,1,1,1,1}
  5. --($B$2:$B$7="def")将在您的第三个条件下再次执行步骤1和2,并返回另一个数组,现在它将是{1,0,1,0,0,1}
  6. 然后将在步骤5中获得的数组与在步骤4中获得的数组相乘,因此我们正在执行{1,1,1,1,1,1} * {1,0,1,0,0,1}={1,0,1,0,0,1}
  7. 现在,将在步骤7中获得的最终数组乘以单元格$C$2:$C$7values
  8. ,因此在这种情况下为{1,0,1,0,0,1} * {10,1,10,1,1,10} = {10,0,10,0,0,10}
  9. 也是最后一步,我们总结了在最后一步中获得的数组内的所有值,因此我们进行了10+0+10+0+0+10=30
  10. 我已经解释了每个步骤,以确保每个人都可以理解,因为如果您知道如何操作,SUMPRODUCT确实是一个有用的功能(我是菜鸟,但是我在这里看到使用此功能的真正英雄)。

使用SUMPRODUCT代替SUMIFS的优点是,您可以轻松添加更多条件以应用相同的范围(案例--($A$2:$A$7="abc")+--($A$2:$A$7="cba"),或将单个条件应用于其他范围(案例--($B$2:$B$7="def"))。

对于普通的SUMIFS,对于在相同范围内应用的每个条件,您可能必须添加1个额外的完整SUMIF。

希望这会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.