【问题标题】:Sumifs formula where sum range changes depending on Cell ValueSumifs 公式,其中总和范围根据单元格值而变化
【发布时间】:2014-12-02 19:12:50
【问题描述】:

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

有什么想法吗?

【问题讨论】:

  • 您应该选择数据透视表。试试看

标签: excel-formula


【解决方案1】:

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

例如: 在此示例中,有一个 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 在您的情况下)中即可获得您想要的结果。

【讨论】:

    【解决方案2】:

    出于演示目的,您可以尝试这个假设数据在 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)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      相关资源
      最近更新 更多