En una tabla sumar los valores asociados a un código

Tengo una tabla con 40.000 líneas y 25.000 códigos diferentes en la columna A y necesito la suma de la cantidad que tiene cada código, estos tienen diferentes cantidades de líneas cada uno

1 respuesta

Respuesta

Este ejemplo fue hecho con 6500 código, como no especificas en que columna están los datos que se quieren sumar la macro hace el calculo usando la columna A(1) y C(3) y coloca los resultados dos columnas después de la ultima columna con datos, también se puede hacer sin datos usando eliminación de registros duplicados y luego la función sumar. Si sobre lo que quede.y esta es la macro

Option Base 1
Sub sumar_codigos()
Dim unicos As New Collection
Set DATOS = Range("a1").CurrentRegion
With DATOS
    r = .Rows.Count: c = .Columns.Count
   ' .Sort key1:=Range(.Columns(1).Address), order1:=xlAscending, Header:=xlYes
    For i = 2 To r
        codigo = .Cells(i, 1)
        On Error Resume Next
            unicos.Add codigo, CStr(codigo)
        On Error GoTo 0
    Next i
    n = unicos.Count
    ReDim matriz(n, 2)
    For j = 1 To n
        codigo = unicos.Item(j)
        matriz(j, 1) = codigo
        matriz(j, 2) = WorksheetFunction.SumIf(.Columns(1), codigo, .Columns(3))
    Next j
    Range(.Cells(2, c + 3).Resize(n, 2).Address) = matriz
    Range(.Cells(1, c + 3).Address) = "CODIGO"
    Range(.Cells(1, c + 4).Address) = "TOTAL"
    Range(.Cells(1, c + 3).Address).Resize(1, 2).Font.Bold = True
End With
Set DATOS = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas