Soma macro de uma linha do Excel

Soma macro de uma linha do Excel

Soma da linha, pare quando o primeiro resultado for positivo. Os demais valores da linha serão convertidos/substituídos por 0, e o último com resultado positivo terá a soma final.

Por exemplo.

Linha A1:F1 = -2, -3, -6, 6, 20, 2

Terá:

Linha = 0, 0, 0, 0, 0, 15, 17

EDIT: Na minha solução suja (fórmula), tenho estes:

Para cada linha em A2:F2

A2 =SE(SOMA(A1:A1)<0,0,A1)

B2 =SE(SOMA(A1:B1)<0,0,SOMA(A1:B1))

C2 =SE(SOMA(A1:C1)<0,0,SOMA(A1:C1))

D2 =SE(SOMA(A1:D1)<0,0,SOMA(A1:D1))

E2 =SE(SOMA(A1:E1)<0,0,SOMA(A1:E1))

F2 =SE(SOMA(A1:F1)<0,0,SOMA(A1:F1))

Mas deve parar de avaliar quando atingir a primeira soma positiva da matriz.

Muito obrigado

Responder1

Acho que isso pode ser feito sem VBA (sempre a melhor solução!). Se seus dados estiverem na linha A, tente colocar isso em B1: =IF(SUM($A$1:A1)<0;0;SUM($A$1:A1))e copie e cole para a direita.

Ps: Não tenho certeza do que deve estar nas células à direita da célula onde está a soma. No momento, ele continua adicionando esses valores. Edite sua pergunta se isso funcionar de maneira diferente.

Responder2

Consegui alcançá-lo sem macro adicionando uma instrução "IF" adicional. A saída deve ser:

Dada a linha A1:F1 = -2, -3, -6, 6, 20, 2

Linha de saída A2:F2 = 0, 0, 0, 0, 0, 15, 2

Parará no primeiro resultado SUM positivo.

.

Portanto a fórmula tornou-se muito longa e não é uma boa solução. Posso usar isso por enquanto, mas se alguém puder compartilhar uma macro, eu realmente apreciaria.

Para linhas A2:F2

A2=SE(SOMA(A1:A1)<0,0,A1)

B2=SE(SOMA(A1:B1)<0,0,SE(A1>0,B1,SOMA(A1:B1)))

C2=SE(SOMA(A1:C1)<0,0,SE(B3>0,C1,SOMA(A1:C1)))

D2=SE(SOMA(A1:D1)<0,0,SE(C3>0,D1,SOMA(A1:D1)))

E2=SE(SOMA(A1:E1)<0,0,SE(D3>0,E1,SOMA(A1:E1)))

F2=SE(SOMA(A1:F1)<0,0,SE(E3>0,F1,SOMA(A1:F1)))

.

Mais uma vez obrigado a todos por seus pensamentos

informação relacionada