-1

Сумма строки, остановка, когда первый результат положительный. Остальные значения строки будут преобразованы / заменены на 0, а последнее с положительным результатом будет иметь окончательную сумму.

Например.

Строка A1:F1 = -2, -3, -6, 6, 20, 2

Буду иметь:

Строка = 0, 0, 0, 0, 0, 15, 17

РЕДАКТИРОВАТЬ: В моем грязном решении (формула) у меня есть эти:

Для каждой строки в A2:F2

A2 = IF(SUM(A1:A1)<0,0, A1)

B2 = IF(SUM(A1:B1)<0,0, SUM(A1:B1))

C2 = IF(СУММА (А1: С1)<0,0, СУММА (А1: С1))

D2 = IF(SUM(A1:D1)<0,0, SUM(A1:D1))

E2 = IF(SUM(A1:E1)<0,0, SUM(A1:E1))

F2 = IF(SUM(A1:F1)<0,0, SUM(A1:F1))

Но он должен прекратить оценивать, когда достигнет первой положительной суммы из массива.

Огромное спасибо

2 ответа2

0

Я думаю, что это можно сделать без VBA (всегда лучшее решение!). Если ваши данные находятся в строке A, попробуйте поместить их в B1: =IF(SUM($A$1:A1)<0;0;SUM($A$1:A1)) и выполнить копирование справа.

PS: Не уверен, что должно быть в ячейках справа от ячейки, где находится сумма. Прямо сейчас он продолжает добавлять эти значения. Пожалуйста, измените ваш вопрос, если это должно работать по-другому.

0

Я смог достичь этого без макроса, добавив дополнительный оператор "IF". Выход должен быть:

Задана строка А1:F1 = -2, -3, -6, 6, 20, 2

Выходная строка A2:F2 = 0, 0, 0, 0, 0, 15, 2

Остановлюсь на первом положительном результате СУММЫ.

,

Так что формула стала очень длинной и не очень удачным решением. Я могу использовать это сейчас, но если кто-то может поделиться макросом, я был бы очень признателен.

Для строк A2:F2

А2 = ЕСЛИ (СУММ (А1: А1)<0,0, А1)

В2 = ЕСЛИ (СУММ (А1: В1)<0,0, ЕСЛИ (А1> 0, В1, СУММ (А1: В1)))

С2 = ЕСЛИ (СУММ (А1: С1)<0,0, ЕСЛИ (B3> 0, С1, СУММ (А1: С1)))

D2 = ЕСЛИ (СУММ (A1:D1)<0,0, ПЧ (С3> 0, D1, SUM (A1:D1)))

E2 = IF(SUM(A1:E1)<0,0, IF(D3> 0, E1, SUM(A1:E1)))

F2 = ЕСЛИ (СУММ (A1:F1), <0,0, ПЧ (Е3> 0, F 1, SUM (A1:F1)))

,

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

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