我正在尝试使用SUMIFS公式,其中我正在求和的列(sum_range)将取决于与另一个工作表中的单元格值匹配的列标题。
因此,例如,我的工作表中的单元格A2可能会显示“实际销售额”,并且公式将汇总数据表中的第X列(因为单元格X1 =“实际销售额”)。但是,如果我将单元格A2更改为“预算销售额”,我希望公式与AG列相加(因此单元格AG1 =“预算销售额”)。
SUMIFS公式中的其他条件不会更改。
我设法使用了索引&在SUMIF公式上执行此操作时匹配公式,但它似乎不适用于SUMIFS公式。
基本公式如下:
=SUMIFS(DATA!X:X,DATA!F:F,B26,DATA!D:D,C10,DATA!E:E,DATA!C11)
上面的公式是对X列(实际销售额)求和,但我希望该范围取决于我在特定单元格中输入的内容。
有什么想法吗?
答案 0 :(得分:2)
您可以INDIRECT
根据字符串输入动态指定范围,例如SUM(INDIRECT("DATA!D:D"))
对D
列中的所有值求和。将其与IF
组合以根据特定条件切换使用的范围。您可以将其与任何公式一起使用,包括SUMIF
或SUMIFS
。
例如:
在此示例中,有一个SumColumn
,其中包含我希望求和的SumColumn
的数量。有效值为1
和2
。
SumColumn1
和SumColumn2
只包含值(无公式)。
单元格B2
包含使用INDIRECT
和SUMIFS
根据条件对值进行求和的公式(所有值必须为>1
)。定义范围的部分是:
INDIRECT(IF(DATA!$A$2=1,"DATA!C:C","DATA!D:D"))
基本上,如果单元格A2
中的数据等于1
,则使用范围DATA!C:C
;否则使用DATA!D:D
。
现在只需将其包装在常规SUMIF
(或您的SUMIFS
中)以获得所需的结果。
答案 1 :(得分:1)
你可以尝试这个假设,为了演示目的,数据在A和B列的同一张表中: -
=SUM(A2:B4*(A1:B1=$C$1))
在C2中作为数组公式输入。
如果您的数据范围中包含非数字单元格,则无效,但您可以尝试
=SUM(IF(ISNUMBER(A2:B4),A2:B4,0)*(A1:B1=$C$1))
这是另一种只选择所需列的方法(非数组公式)
=SUM(INDIRECT(ADDRESS(2,MATCH($C$1,$A$1:$B$1,0))&":"&ADDRESS(4,MATCH($C$1,$A$1:$B$1,0))))
但你必须把你想要的行范围(在本例中为2& 4)。
=SUM(INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH($C$1,$A$1:$B$1,0)),"$1","")&":"&SUBSTITUTE(ADDRESS(1,MATCH($C$1,$A$1:$B$1,0)),"$1","")))
更好,因为它总结了整个列。
然而,标准方法是使用INDEX返回整列: -
=SUM(INDEX(A:B,,MATCH($C$1,$A1:$B1)))