Макрос Excel Сумма строки

Макрос Excel Сумма строки

Сумма строки, остановитесь, когда первый результат будет положительным. Остальные значения строки будут преобразованы/заменены на 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)))

.

Еще раз спасибо всем за ваши мысли.

Связанный контент