-1

У меня есть серьезная проблема, и я сделал свое исследование, все еще не могу получить правильную формулу. Пожалуйста, проверьте ответ на аналогичный вопрос здесь:

Как перезапустить подсчет числа, если значение ячейки = 0

Теперь я люблю то же самое, за исключением небольшой разницы. От строк А1 до 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

Итак, насколько я это проверил, он работает, но мне нужно изменить его, чтобы сравнить логическую операцию «<», а затем увеличить число и НЕ +r, поэтому я не знаю, как это сделать :)

1 ответ1

0

Если у нас есть ряд целых чисел в диапазоне 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 (слева направо), которые были больше, чем предыдущее значение (слева).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .