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

Смотрел, как делать это весь день.

Я пытаюсь получить автоматический сброс, если ячейка попадает на 0, но я просто не могу найти формулу или VBA, чтобы помочь в этом.

  • Формула Excel для получения первого и последнего непустого значения в строке и заголовка заголовка возврата
  • Проблемы с макросами Excel 2010
  • Альтернативные строки повторяющихся данных в Excel
  • Как заставить Excel сохранить содержимое своего буфера обмена
  • Excel: переносная формула для ссылки на предыдущий (относительный) рабочий лист
  • Добавление нуля до значений в столбец электронной таблицы Excel?
  • A1 9 B1 9 C1 0 D1 9 E1 9 F1 9 G1 9 H1 36 (I would like it to = 36, resetting at any cell showing 0 and not show 54 

    В полях A1: G1 ежедневно работают часы в списке, в H1 – часы, полностью обработанные на этой неделе. (Однако я пытаюсь установить этот сброс, если есть 0-часовой день / День отдыха)

    Есть ли формула, которая может это сделать?

  • Справочный лист Excel с апострофом в названии
  • Разделить столбец Excel с XML внутри
  • Экземпляр Excel VBA.
  • Как объединить значения из нескольких строк в одну строку с помощью модуля?
  • Как узнать, что связано с моей рабочей таблицей Excel?
  • Странный остаток на ячейке с проверкой данных при использовании Excel VBA
  • 3 Solutions collect form web for “Как перезапустить число, если значение ячейки = 0”

    Мы можем использовать строку «помощник». В A2 введите: =A1 в B2 введите:

     =IF(B1=0,0,B1+A2) 

    И копировать. Наконец, в H1 введите: =G2

    Введите описание изображения здесь

    Wih BVA / Макросы

     Public Function sumreset(dataRange As Range) totalSum = 0 totalLength = -1 indicator = "none" totalLengthRows = dataRange.Rows.Count totalLengthCols = dataRange.Columns.Count If (totalLengthRows = 1) And (totalLengthCols > 1) Then totalLength = totalLengthCols indicator = "cols" ElseIf (totalLengthRows > 1) And (totalLengthCols = 1) Then totalLength = totalLengthRows indicator = "rows" End If For i = totalLength To 1 Step -1 Select Case indicator Case "rows" nextData = dataRange(i, 1) Case "cols" nextData = dataRange(1, i) End Select If nextData <> 0 Then totalSum = totalSum + nextData Else i = 1 End If Next i sumreset = totalSum End Function 

    Откройте VBA / Макросы с помощью ALT + F11, в разделе ThisWorkbook вставьте модуль и вставьте этот код с правой стороны.

    На ячейке H1 put =sumreset($A$1:$G$1) и все.

    Вот простой макрос, который будет делать именно то, что вы хотите. Это работает с горизонтальным или вертикальным диапазоном

     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 

    Как и выше, просто положите =SumAfterZero(A1:G1) в ячейку H1.

    Давайте будем гением компьютера.