Excel 如何重新开始计数如果 A1:Z1 如果 A

Excel 如何重新开始计数如果 A1:Z1 如果 A

我遇到了一个大问题,我做了研究,但仍然无法得到正确的公式。请在此处查看类似问题的答案:

如果单元格值 = 0,如何重新开始数字计数

现在我想做的事情是一样的,只是略有不同。从 A1 行到 Z1 行,我有值。我希望公式计算某个数字比范围内的前一个数字多多少倍,但如果该数字小于前一个数字,我希望计数重置回 0。

所以

A 1
B 2
C 0 
D 1 
E 2

这里的答案是 2..因为在 C 处计数重置回 0。

有什么帮助吗?我从上一个链接中找到了公式

Function SumAfterZero(rng As Range) As Double

Dim r As Range
Dim output As Double

For Each r In rng
    If r = 0 Then
        output = 0
    Else
        output = output + r
    End If
Next r

SumAfterZero = output

End Function

据我测试,它是有效的,但我必须将其更改为比较逻辑运算“<”,然后增加计数并且 NOT +r,所以我不知道该怎么做:)

答案1

如果我们有一系列范围内的整数A1:Z1

/-----------------------------------------------------------------------------------------------------------\
|   | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---|
| 1 | 5 | 5 | 7 | 7 | 9 | 5 | 6 | 9 | 2 | 6 | 6 | 9 | 0 | 4 | 0 | 7 | 3 | 2 | 5 | 0 | 3 | 9 | 6 | 6 | 7 | 6 |
\-----------------------------------------------------------------------------------------------------------/

0我们可以在中放置一个值A1,并在中使用以下公式B2(然后将其向右复制到Z2

=IF(B1>A1,A2+1,0)

结果如下:

/-----------------------------------------------------------------------------------------------------------\
|   | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---|
| 1 | 5 | 5 | 7 | 7 | 9 | 5 | 6 | 9 | 2 | 6 | 6 | 9 | 0 | 4 | 0 | 7 | 3 | 2 | 5 | 0 | 3 | 9 | 6 | 6 | 7 | 6 |
| 2 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 2 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 2 | 0 | 0 | 1 | 0 | 
\-----------------------------------------------------------------------------------------------------------/

第 2 行中的值表示第 1 行(从左到右)中大于前一个值(左侧)的连续值的数量。

相关内容