2

Я пытаюсь автоматически сбросить общее количество, если ячейка равна 0.

A1 9
B1 9
C1 0  <-- Reset total
D1 9
E1 9
F1 9
G1 9
H1 36 (Should = 36, resetting at any cell showing 0 and not show 54) 

Поля A1:G1 содержат ежедневные часы, отработанные в реестре, в то время как H1 содержит общее количество часов, отработанных на этой неделе. (Тем не менее, я хочу сбросить эту сумму, если день отдыха равен 0 часам)

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

3 ответа3

2

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

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

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

1

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 / Macros с помощью ALT+F11, в ThisWorkbook вставьте модуль и вставьте этот код справа.

В ячейку H1 положите =sumreset($A$1:$G$1) и все.

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

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

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