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

时间:2014-12-02 19:12:50

标签: excel-formula

我正在尝试使用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列(实际销售额)求和,但我希望该范围取决于我在特定单元格中输入的内容。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以INDIRECT根据字符串输入动态指定范围,例如SUM(INDIRECT("DATA!D:D"))D列中的所有值求和。将其与IF组合以根据特定条件切换使用的范围。您可以将其与任何公式一起使用,包括SUMIFSUMIFS

例如: INDIRECT Example 在此示例中,有一个SumColumn,其中包含我希望求和的SumColumn的数量。有效值为12

SumColumn1SumColumn2只包含值(无公式)。

单元格B2包含使用INDIRECTSUMIFS根据条件对值进行求和的公式(所有值必须为>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中作为数组公式输入。

enter image description here

如果您的数据范围中包含非数字单元格,则无效,但您可以尝试

=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)))