Excel formula Sumifs公式,其中总和范围根据单元格值而变化

Excel formula Sumifs公式,其中总和范围根据单元格值而变化,excel-formula,Excel Formula,我试图做一个SUMIFS公式,其中我要求和的列(sum_范围)将取决于与另一个表中的单元格值匹配的列标题 因此,例如,我的数据表中的单元格A2可能会说“实际销售额”,公式将对数据表中的列X求和(因为单元格X1=“实际销售额”)。但如果我将单元格A2更改为“预算销售额”,我希望公式从列AG求和(因此单元格AG1=“预算销售额”) SUMIFS公式中的其他标准不会改变 在对SUMIF公式执行此操作时,我设法使用了索引和匹配公式,但在SUMIFS公式上似乎不起作用 基本公式如下: =SUMIFS(数据

我试图做一个SUMIFS公式,其中我要求和的列(sum_范围)将取决于与另一个表中的单元格值匹配的列标题

因此,例如,我的数据表中的单元格A2可能会说“实际销售额”,公式将对数据表中的列X求和(因为单元格X1=“实际销售额”)。但如果我将单元格A2更改为“预算销售额”,我希望公式从列AG求和(因此单元格AG1=“预算销售额”)

SUMIFS公式中的其他标准不会改变

在对SUMIF公式执行此操作时,我设法使用了索引和匹配公式,但在SUMIFS公式上似乎不起作用

基本公式如下:

=SUMIFS(数据!X:X,数据!F:F,B26,数据!D:D,C10,数据!E:E,数据!C11)

上面的公式是X列(实际销售额)的总和,但我希望该范围取决于我在特定单元格中输入的内容


有什么想法吗?

您可以尝试这样做,假设出于演示目的,数据在A列和B列的同一张表中:-

=SUM(A2:B4*(A1:B1=$C$1))
在C2中作为数组公式输入

如果您的数据范围中有非数字单元格,它将不起作用,但您可以尝试

=SUM(IF(ISNUMBER(A2:B4),A2:B4,0)*(A1:B1=$C$1))
下面是另一个只选择所需列的方法(非数组公式)

但是您必须放置所需的行范围(在本例中为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","")))
更好,因为它对整个列求和

但是,标准方法是使用索引返回整个列:-

=SUM(INDEX(A:B,,MATCH($C$1,$A1:$B1)))

您可以直接
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
,则使用一系列
数据!C:C
;否则使用
数据!D:D


现在只需将其包装在常规的
SUMIF
(或者在您的示例中为
SUMIFS
)中,即可获得所需的结果。

您应该选择透视表。试试看
=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","")))