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

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

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

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-часовой день / День отдыха)

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

Мы можем использовать строку «помощник». В 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.

  • Integer Vs Long Confusion
  • Как вы получаете Range для возвращения своего имени?
  • GET изображения с URL-адреса, а затем переименуйте изображение
  • Разница между Visual Basic 6.0 и VBA
  • Определите, добавляет ли пользователь или удаляет строки
  • Как добавить ссылку программно
  • Скопируйте данные из другой рабочей книги через VBA
  • Как я могу получить HTTP GET из Excel VBA для Mac 2011
  • Запуск такого же макроса excel в нескольких файлах excel
  • Как я могу записать переход от 0 до 1 в столбце Excel?
  • Цикл через каждую строку диапазона в Excel
  • Interesting Posts

    Размер раздела подкачки для 4 ГБ ОЗУ

    Ошибка при установке Ant: ANT_HOME установлен неправильно

    Каково максимальное количество бара, которое теоретически может решить 64-битная машина?

    Как сделать grid-view горизонтально прокручиваемым в android

    Не удалось передать артефакт org.apache.maven.plugins: maven-surefire-plugin: pom: 2.7.1 из / в центральный (http://repo1.maven.org/maven2)

    (Контакт) не могут быть добавлены до тех пор, пока они не примут ваш запрос на контакт

    Обнаружение первого запуска / обновления Chrome

    Легкий способ использовать переменные типов enums как строку в C?

    Как я могу получить сообщение об ошибке запроса Ajax?

    Является ли java.time неспособным анализировать долю секунды?

    Seagate 7200.12 Не распознается системой

    Есть ли способ заставить ASP.NET Web API возвращать обычный текст?

    Перенос / перераспределение файла Pagefile.sys влияет на производительность (Windows 7)?

    Расшифровка трафика SSL в Wireshark. Только заголовки получают расшифровку

    Глубокий клонированный объект Doctrine с связанными объектами

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