Utiliza la siguiente macro. Tus nombres deberán iniciar en la celda A2.
Sub subtotales()
'Por.DAM
ant = Cells(2, "A")
j = 2
Set h1 = ActiveSheet
h1.Columns("C:D").ClearContents
u = h1.Range("A" & Rows.Count).End(xlUp).Row
With h1.Sort
.SortFields.Clear: .SortFields.Add Key:=h1.Range("A2:A" & u)
.SetRange h1.Range("A2:B" & u): .Header = xlYes: .Apply
End With
For i = 2 To u + 1
If Cells(i, "A") <> ant Then
Cells(j, "C") = ant
Cells(j, "D") = tot
tot = 0
j = j + 1
End If
tot = tot + Cells(i, "B")
ant = Cells(i, "A")
Next
End Sub
También puedes obtener los subtotales de los nombres con un tabla dinámica. Para ello, selecciona tus datos incluyendo los títulos, selecciona del menú: Insertar. Selecciona tabla dinámica. Marca la opción "Hoja de cálculo existente". En Ubicación selecciona o escribe la celda C3. Presiona aceptar. Del lado derecho te aparece una ventana con la lista de campos de la tabla dinámica. Marca las casillas de Nombres y valores. Listo, tienes los subtotales.
Otra opción para subtotales es la siguiente: Selecciona tus datos incluyendo los títulos. Del menú selecciona Datos. En la ficha Esquema encontrarás el botón Subtotal. Presiona el botón subtotal. Por default te va a aparecer: "Para cada cambio en:" y ahí debe aparecer "Nombres" Usar función "Suma" y Agregar subtotal "Valores". Presiona Aceptar. Esta forma de subtotales te los pone en las mismas columnas. Del lado izquierdo te aparecen los números 1,2 y 3, presiona el número 2 y los subtotales se agruparan.
Estimado, tengo un problema, tengo una hoja "HISTORIA OE" que son ingresos con código y una que registra esos códigos cuando salen "HISTORIA BODEGA", quiero hacer una macro que sume los valores de "C" de "HISTORIA BODEGA" siempre y cuando el valor de la columna "B" sean iguales, posteriormente que se inserte dicha fila en la columna AX de "HISTORIA OE" - cristian silva gonzález