首页 > 解决方案 > 如何计算单元格直到值大于 0?

问题描述

在 Excel 中,我试图计算预约可用的天数。

在下面的数据集中,我需要能够计数,直到达到一个不为 0 的值。

我需要的结果是

用简单的英语我需要它来检查 cell = 0 如果它是然后计数它,并在 cell 不再 = 0 时停止计数

如果有一个最好的 VBA 解决方案,但不接受任何可行的方法。

            示例 1 示例 2 示例 3
2019 年 5 月 13 日 0 0 2
2019 年 5 月 14 日 0 0 0
2019 年 5 月 15 日 0 0 6
2019 年 5 月 16 日 6 0 0
2019 年 5 月 17 日 0 0 3
2019 年 5 月 20 日 3 7 0
2019 年 5 月 21 日 6 14 0
2019 年 5 月 22 日 6 0 1
2019 年 5 月 23 日 12 14 0
2019 年 5 月 24 日 7 0 0

我尝试了多种方法,但是我得到的最接近的是下面的 VBA,它似乎在我的 excel 崩溃之前给出了正确的答案,所以我怀疑它计算了它不应该计算的东西。

    Dim iCntr As Integer
    iCntr = 2
    Do While (Cells(iCntr, 3).Value) = 0
    Range("C13").Value = Application.WorksheetFunction.Count("C:C")
    Loop
End Sub

标签: excelvba

解决方案


公式;

例如 1,但编辑会返回示例 2 和 3。

=MATCH(TRUE,INDEX($B$2:$B$11>0,0),0)-1

推荐阅读