我需要能够使用基于另一列的条件求和非相邻列(即D和E)中的值。
我最近在excel论坛中发现了对以下问题的答复:“如何根据条件求和多个列...”。
基于公式=SUMPRODUCT((A4:A9="Football")\*(B4:D9))
,“足球”的结果为24。
我需要知道的是,是否有一种只计算[B]和[D]列之和的方法-(B4:B9)+(D4:D9),避免使用以下公式:
=SUMPRODUCT((A4:A9="Football")\*(B4:B9))+SUMPRODUCT((A4:A9="Football")\*(D4:D9))
在这种情况下,“足球”的结果将是: (4 + 2)+(1 + 2)+(1 + 3)= 13。
非常感谢,
Leopoldo Fernandes
答案 0 :(得分:2)
您正在使用SUMPRODUCT
进行尝试的方式如下:
=SUMPRODUCT((A4:A9="Football")*(B4:B9+D4:D9))
另一种从范围B4:D9
中排除某列的方式可能是:
=SUMPRODUCT((A4:A9="Football")*(COLUMN(B4:D9)<>3),B4:D9)
但是另一种(可能更好的方法)是使用多个SUMIF
:
=SUMIF(A4:A9,"Football",B4:B9)+SUMIF(A4:A9,"Football",D4:D9)
编辑:
解释第二个公式;它会首先根据您的查询值检查A列,并返回一个TRUE
和FALSE
值的数组。然后,我们检查值的范围B4:D9
(也可以使该值B4:D4
),如果它不是第3列,则仅在矩阵中返回TRUE
。现在,我们制作了矩阵,即第二个参数可以是整个范围,因此SUMPRODUCT
知道要选择和添加的值。
如您所见,公式向我返回13,而不是15。
答案 1 :(得分:1)
您也可以尝试以下方法:
=SUMPRODUCT((A2:A7="Football")*B2:D7*ISNUMBER(FIND(B1:D1,"Week1|Week3")))
如果一个列标题可以是另一列的子字符串,则需要调整公式:
=SUMPRODUCT((A2:A7="Football")*B2:D7*ISNUMBER(FIND("|"&B1:D1&"|","|Week1|Week3|")))
这可能会更通用一些,因为您可以指定多个列标题。
答案 2 :(得分:0)