【问题标题】:Calculate the COUNTIFS criteria range dynamically动态计算 COUNTIFS 条件范围
【发布时间】:2017-04-30 05:48:27
【问题描述】:

我有一个如下的excel公式,

COUNTIFS($A$8:$A$14,$A8,$B$8:$B$14,$B8)

这里我想用一个简单的逻辑来计算条件范围。

我希望这个值不是$A$14,而是计算为 A$8+4,即 $A$14

换句话说,它应该获取当前行并添加 4 作为 COUNTIFS 的条件范围

在 COUNTIFS 公式中如何做到这一点?

干杯

【问题讨论】:

  • 您说获取当前行,但在您的示例中,您已将该行锁定为 8。所以如果我在第 32 行,您是否希望它为 $A$8:$A 36 美元,因为 36 会是 4+32?或者你的意思是你希望它被添加到任何行是范围的开始?

标签: excel excel-formula excel-2010


【解决方案1】:

您可以在公式中使用=OFFSET(Cell Reference, Rows, Columns) 来实现此目的,例如:

=COUNTIFS($A$8:OFFSET($A$8,6,0),$A8, etc...)

【讨论】:

    【解决方案2】:

    假设要返回的范围的大小存储在单元格 D1 中。

    =COUNTIFS($A$8:INDEX(A:A,ROW($A$8)+D1),$A8,$B$8:INDEX(B:B,ROW($B$8)+D1),$B8)
    

    如果您希望将范围定义为问题中所述的当前行之后的特定行数,那么仍然假设要添加的行数在 D1 中,您将使用以下内容:

     =COUNTIFS($A$8:INDEX(A:A,ROW()+D1),$A8,$B$8:INDEX(B:B,ROW()+D1),$B8)
    

    【讨论】:

      【解决方案3】:

      扩展奥利弗的答案。 OFFSET 的完整格式允许您指定整个范围,而不仅仅是一个单元格。 OFFSET(Reference, Row Offset, Col Offset, Height, Width) 所以你可以这样做:

      OFFSET(A8,0,0,4,1) 
      

      这指定范围A8:A11。在 COUNTIF

      =COUNTIF(OFFSET(A8,0,0,4,1),A8,...)
      

      如果需要,使用 $ 锁定单元格在 OFFSET 中的工作方式相同。

      【讨论】:

        【解决方案4】:

        试试这个:

        =COUNTIFS(INDIRECT("$A$8:$A$" & 8+6),$A8,INDIRECT("$B$8:$B$" & 8+6),$B8)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-09-08
          • 1970-01-01
          • 1970-01-01
          • 2021-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多