Macro suma de una fila en Excel

Macro suma de una fila en Excel

Suma de filas, se detiene cuando el primer resultado sea positivo. El resto de los valores de la fila se convertirán/reemplazarán con 0, y el último con resultado positivo tendrá la suma final.

P.ej.

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

Tendrá:

Fila = 0, 0, 0, 0, 0, 15, 17

EDITAR: En mi solución sucia (fórmula), tengo estos:

Para cada fila en A2:F2

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

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

C2 =SI(SUM(A1:C1)<0,0,SUM(A1:C1))

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

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

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

Pero debería dejar de evaluar cuando llegue a la primera suma positiva de la matriz.

Gracias un montón

Respuesta1

Creo que esto se puede hacer sin VBA (¡siempre es la mejor solución!). Si sus datos están en la fila A, intente poner esto en B1: =IF(SUM($A$1:A1)<0;0;SUM($A$1:A1))y copie y pegue a la derecha.

Ps: No estoy seguro de qué debería haber en las celdas a la derecha de la celda donde está la suma. En este momento, sigue agregando esos valores. Edite su pregunta si esto debería funcionar de manera diferente.

Respuesta2

Pude lograrlo sin macro agregando una declaración "IF" adicional. La salida debería ser:

Dada la fila A1:F1 = -2, -3, -6, 6, 20, 2

Fila de salida A2:F2 = 0, 0, 0, 0, 0, 15, 2

Se detendrá en el primer resultado SUM positivo.

.

Entonces la fórmula se volvió muy larga y no fue una buena solución. Puedo usar esto por ahora, pero si alguien puede compartir una macro, se lo agradecería mucho.

Para filas A2:F2

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

B2=SI(SUM(A1:B1)<0,0,SI(A1>0,B1,SUM(A1:B1)))

C2=SI(SUM(A1:C1)<0,0,SI(B3>0,C1,SUM(A1:C1)))

D2=SI(SUM(A1:D1)<0,0,SI(C3>0,D1,SUM(A1:D1)))

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

F2=SI(SUM(A1:F1)<0,0,SI(E3>0,F1,SUM(A1:F1)))

.

Nuevamente gracias a todos por sus pensamientos.

información relacionada