Si se da coincidencia en columnas que las sume

Preciso que una MACRO, recorra la columna I desde I3 hasta el final de datos y cuando encuentre algo lo busque desde C3 hasta el final, una vez encontrado el importe que aparezca en la columna G lo sume si este también coincide con el mes, puede estar repetido varias veces en el mismo mes. O dicho de otra manera.

El concepto "Ropa" en el mes de septiembre a cuanto asciende. Pues buscará todo lo que sea "septiembre" y a su vez "Ropa" los sumará y el total lo pondría en J3. Y así con todos los meses. Estos siempre serán de Septiembre a Febrero.

Incluyo una foto para que se vea la distribución. Saludos y muchas gracias.

2 respuestas

Respuesta
2

Esta es la fórmula para la primer celda de resultados.

Presta atención a los signos $ . De este modo podrás arrastrar al resto de las col y filas.

Mi rango llega solo hasta la 14 (ajusta) y utilizo pto y coma para los separadores de argumentos (ajusta si solo utilizas coma).

=SUMAR.SI.CONJUNTO($G$3:$G$14;$C$3:$C$14;$I3;$D$3:$D$14;J$2)

Sdos y no olvides valorar la respuesta una vez probada (opciones: excelente o buena)

Me pareció que para esto no es necesario una macro, pero si la necesitas avisame o sigue estos pasos:

- Enciende la grabadora de macros

-Posicionate en la celda J3, colocá el cursor en la barra de fórmulas y presioná Enter.

- Luego arrastrá la fórmula hacia la última celda hacia abajo.

- Y luego hacia derecha hasta tu última columna.

- Detené la grabadora y en un módulo tendrás la macro.

Sdos.

Elsa

Respuesta
2

Prueba con esta macro

Sub TOTALIZAR()
Set TOTALES = Range("I2").CurrentRegion
Set GASTOS = Range("C2").CurrentRegion
With TOTALES
    R = .Rows.Count: C = .Columns.Count
    Set TOTALES = Range("I3").Resize(R - 2, C)
    For I = 1 To R
        GASTO = .Cells(I, 1)
        If GASTO = Empty Then GoTo SALIR
            For J = 2 To C
                MES = .Cells(0, J)
                SUMA = WorksheetFunction.SumIfs(GASTOS.Columns(5), GASTOS.Columns(1), GASTO, GASTOS.Columns(3), MES)
                TOTALES.Cells(I, J) = SUMA
            Next J
    .Cells(I, J) = WorksheetFunction.Sum(.Rows(I))
    Next I
SALIR:
.Cells(R - 1, J) = WorksheetFunction.Sum(.Columns(J))
End With
Set TOTALES = Nothing: Set GASTOS = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas