如果A是abc
或cba
而B是def
,我试图得到列C的总和:
=SUMIFS(C2:C51;A2:A51;{"abc","cba"};B2:B51;"def")
但是该公式无效,不知道我的错误在哪里,因为这是在Google快速搜索中提出的。
谢谢您的建议。
该公式对我有效,但是这可能与您的分隔符有关。根据您的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(
函数并将结果相加在一起,可以达到相同的结果。
[我可能会使用@Plutian答案(实际上我赞成),但是如果它可能对您有用,您可以将SUMPRODUCT与DOUBLE UNARY结合使用以获得所需的确切信息。
我制作了一个这样的假数据集:
如您所见,只有突出显示的值符合您的要求(如果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)
这是它的工作方式:
($A$2:$A$7="abc")
如果满足条件,将返回True/False
值的数组。--( your range )
中,会将所有True/False
值转换为1 or 0
值。假设它的工作方式类似于您选择了一个仅包含1或0的单元格区域。因此,在这种情况下,它将返回一个数组,例如{1,0,1,0,1,0}
--($A$2:$A$7="cba")
将再次执行与步骤1或2完全相同的操作,但使用第二个选项。它将返回另一个值数组,在这种情况下,{0,1,0,1,0,1}
--($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}
--($B$2:$B$7="def")
将在您的第三个条件下再次执行步骤1和2,并返回另一个数组,现在它将是{1,0,1,0,0,1}
{1,1,1,1,1,1} * {1,0,1,0,0,1}={1,0,1,0,0,1}
$C$2:$C$7
的values{1,0,1,0,0,1} * {10,1,10,1,1,10} = {10,0,10,0,0,10}
10+0+10+0+0+10=30
我已经解释了每个步骤,以确保每个人都可以理解,因为如果您知道如何操作,SUMPRODUCT确实是一个有用的功能(我是菜鸟,但是我在这里看到使用此功能的真正英雄)。
使用SUMPRODUCT代替SUMIFS的优点是,您可以轻松添加更多条件以应用相同的范围(案例--($A$2:$A$7="abc")+--($A$2:$A$7="cba")
,或将单个条件应用于其他范围(案例--($B$2:$B$7="def")
)。
对于普通的SUMIFS,对于在相同范围内应用的每个条件,您可能必须添加1个额外的完整SUMIF。
希望这会有所帮助