【问题标题】:Countif greater than previous cell计数大于前一个单元格
【发布时间】:2014-07-07 16:08:21
【问题描述】:

我想计算一列中单元格值等于零并且下一行中的单元格大于零的次数。

假设我的专栏是下面那个。

Row 1: 5
Row 2: 2
Row 3: 0
Row 4: 4
Row 5: 3
Row 6: 0
Row 7: 5
Row 8: 0
Row 9: 2

那么公式的结果应该是3,因为有3对:

Row 3: 0
Row 4: 4

Row 6: 0
Row 7: 5

Row 8: 0
Row 9: 2

我尝试使用 countif 或 sumif,但在我看来,您只能输入固定参考单元格。 知道我该怎么做吗?

【问题讨论】:

    标签: excel function statistics logic countif


    【解决方案1】:

    Sumproduct 将在这里工作

    首先,我们建立需要比较的范围(我假设您使用的是 A 列)

    A1:A8<A2:A9
    

    注意偏移量为 1,因此我们错过了第一个数组中的最后一个值,以及第二个数组中的第一个单元格。

    TRUE/FALSE 值转换为 0/1 以相加

    --(A1:A8<A2:A9)
    

    并用 SUMPRODUCT 包装它以将数字相加

    =SUMPRODUCT(--(A1:A8<A2:A9))
    

    请注意,您可以使用 SUM 代替 SUMPRODUCT,但您必须记住使用带有 CTRL+ALT+ENTER的数组公式> - 公式将如下所示:{=SUM(--(A1:A8&lt;A2:A9))}

    【讨论】:

    • 谢谢!我添加了单元格等于零的条件,最终公式完美运行! =SOMMEPROD(--(A1:A8&lt;A2:A9);--(A1:A8=0))
    • 我有一个类似的问题,这工作到目前为止。但是我的范围是动态的,因为源是电源查询。我找到了一种使用 Offset (=OFFSET(origin,0,0,COUNTA(range),COUNTA(range))) 定义动态范围的方法,但是我想知道是否有更优雅的方法来做到这一点。在我看来,这将是一个更常见的问题。
    【解决方案2】:

    如果您有 Excel 2007 或更高版本:

    =COUNTIFS(A1:A9,0,A2:A10,">0")

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 2021-10-13
      • 1970-01-01
      • 2016-12-31
      相关资源
      最近更新 更多