Sumar celdas en la misma fila, en muchas filas

Tengo una tabla con más de 5 mil ítems y requerio que al registrar cantidades en las celdas de las columnas 1,2,3, COD, se sume totalice estas cantidades en la misma fila, en la celda de la columna Total, hacerlo uno a uno implicaría un codigo muy extenso, ¿cómo hacer que una macro identifique cantidades mayores a cero (0) y realice la suma? Les agradezco mucho su orientación.

2 Respuestas

Respuesta
1

¿Podrías dejar el resultado en la col Total de las 2 primeras filas?

Porque a simple vista pareciera que solo necesitas colocar esta fórmula (ajusta a tu rango porque no se ven los encabezados de col en tu imagen).

=SUMA(F3:I3)

Si no quieres que te aparezca el valor 0 cuando no hay valores en el rango, podrías utilizar esta otra:

=SI(CONTARA(F3:I3) = 0;"";SUMA(F3:I3))

Luego solo arrastra la fórmula un par de filas. Si se trata de una Tabla, te completará al resto del rango. Sino tendrás que arrastrarla al resto de la columna.

Si el tema queda resuelto no olvides marcar una valoración (buena o excelente) para darla por cerrada. Si te queda alguna duda, agrega la imagen con los encabezados a la vista, los totales en las primeras filas y toda las aclaraciones que puedas aportar.

Respuesta

Te invito a SUSCRIBIRTE a mi canal de YouTube:

Excel y Macros

Ahí encontrarás más sobre Excel y Macros:

https://www.youtube.com/channel/UCs644-v3ti4SF7zE_bt_YXA 

Comparte los enlaces en tus redes sociales.


Tu comentario:

Hacerlo uno a uno implicaría un código muy extenso

En tu imagen no se ven las filas ni las columnas de la hoja de excel, así que supongo que las columnas 1, 2, 3 y COD, están en las columnas D, E, F, G y el total en la columna H y la fila de inicio es la 3.

Si quieres un código en VBA para realizar la suma, pon el siguiente código en los eventos de tu hoja.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por Dante Amor
  Dim rng As Range, c As Range
  Dim xSum As Double
  Set rng = Intersect(Target, Range("D3:G" & Rows.Count))
  If Not rng Is Nothing Then
    For Each c In rng
      Application.EnableEvents = False
      xSum = WorksheetFunction.Sum(Range("D" & c.Row).Resize(1, 4))
      If xSum = 0 Then
        Range("H" & c.Row).Value = ""
      Else
        Range("H" & c.Row).Value = xSum
      End If
      Application.EnableEvents = True
    Next
  End If
End Sub

Cada vez que captures valores en las columnas D a la G, en automático el código pondrá la suma en la columna H.

Incluso puedes capturar varios valores al mismo tiempo en una fila o en varias filas. El código podrá la suma en la fila correspondiente.


Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas