Сумма строки, остановитесь, когда первый результат будет положительным. Остальные значения строки будут преобразованы/заменены на 0, а последний с положительным результатом будет иметь окончательную сумму.
Например.
Строка A1:F1 = -2, -3, -6, 6, 20, 2
Будет:
Строка = 0, 0, 0, 0, 0, 15, 17
EDIT: В моем грязном растворе (формуле) есть следующее:
Для каждой строки в A2:F2
A2 =ЕСЛИ(СУММ(A1:A1)<0,0,A1)
B2 =ЕСЛИ(СУММ(A1:B1)<0,0,СУММ(A1:B1))
C2 =ЕСЛИ(СУММ(A1:C1)<0,0,СУММ(A1:C1))
D2 =ЕСЛИ(СУММ(A1:D1)<0,0,СУММ(A1:D1))
E2 =ЕСЛИ(СУММ(A1:E1)<0,0,СУММ(A1:E1))
F2 =ЕСЛИ(СУММ(A1:F1)<0,0,СУММ(A1:F1))
Но вычисление следует прекратить, когда будет достигнута первая положительная сумма из массива.
Огромное спасибо
решение1
Я думаю, это можно сделать без VBA (всегда лучшее решение!). Если ваши данные находятся в строке A, попробуйте поместить это в B1: =IF(SUM($A$1:A1)<0;0;SUM($A$1:A1))
и скопировать-вставить справа.
Ps: Не уверен, что должно быть в ячейках справа от ячейки, где находится сумма. Прямо сейчас он продолжает добавлять эти значения. Пожалуйста, отредактируйте свой вопрос, если это должно работать по-другому.
решение2
Мне удалось добиться этого без макроса, добавив дополнительный оператор "IF". Вывод должен быть таким:
Дана строка A1:F1 = -2, -3, -6, 6, 20, 2
Выходная строка A2:F2 = 0, 0, 0, 0, 0, 15, 2
Остановимся при первом положительном результате SUM.
.
Так что формула стала очень длинной, и это не лучшее решение. Я могу использовать это пока, но если кто-то может поделиться макросом, я буду очень признателен.
Для строк A2:F2
A2=ЕСЛИ(СУММ(A1:A1)<0,0,A1)
B2=ЕСЛИ(СУММ(A1:B1)<0,0,ЕСЛИ(A1>0,B1,СУММ(A1:B1)))
C2=ЕСЛИ(СУММ(A1:C1)<0,0,ЕСЛИ(B3>0,C1,СУММ(A1:C1)))
D2=ЕСЛИ(СУММ(A1:D1)<0,0,ЕСЛИ(C3>0,D1,СУММ(A1:D1)))
E2=ЕСЛИ(СУММ(A1:E1)<0,0,ЕСЛИ(D3>0,E1,СУММ(A1:E1)))
F2=ЕСЛИ(СУММ(A1:F1)<0,0,ЕСЛИ(E3>0,F1,СУММ(A1:F1)))
.
Еще раз спасибо всем за ваши мысли.