subtotales en una sola linea

23/07/2008 - 11:56 por SOREN | Informe spam
Hola compañeros:
Tengo una lista de datos los cuales los quiero subtotalizar con un campo (
el de la columna a, es decir cuando cambien ese dato que me subtotalice las
demas columnas) como indice de seleccion, pero en cada columna quiero usar
una funcion, es decir, en la columna b que es importe, usar "suma", en la C
que es fecha, usar " maximo" en la columna D que es operacion, usar
"promedio", y todo esto que me lo subtotalice en una sola linea, es decir,
sin que me haga los subtotales en lineas consecutivas.

Hasta ahora tengo que condensar todos los totales en una fila " a mano".
He buscado informacion y no he visto este caso.
¿Me podeis ayudar?

Un saludo
Soren

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
23/07/2008 - 14:19 | Informe spam
hola, 'anonimo/a' ! (de "emagister" ?)

Tengo una lista de datos los cuales los quiero subtotalizar con un campo
(el de la columna a, es decir cuando cambien ese dato que me subtotalice las demas columnas)
como indice de seleccion, pero en cada columna quiero usar una funcion, es decir
en la columna b que es importe, usar "suma", en la C que es fecha, usar "maximo" en la columna D que es operacion, usar "promedio"
y todo esto que me lo subtotalice en una sola linea, es decir, sin que me haga los subtotales en lineas consecutivas.
Hasta ahora tengo que condensar todos los totales en una fila " a mano".
He buscado informacion y no he visto este caso...



necesitas aplicar subtotales por macro (una sola funcion) y agregar/modificar las otras funciones SIN usar ya los subtotales (p.e.)

Dim Celda As Range
Application.ScreenUpdating = False
With Range("a2").CurrentRegion
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=2, Replace:=1, PageBreaks:=0, SummaryBelowData:=1
End With
For Each Celda In Range("a2").CurrentRegion.Offset(, 1).Resize(, 1).SpecialCells(xlCellTypeFormulas)
Celda.Copy
With Celda.Offset(, 1): .PasteSpecial xlPasteFormulas: .Replace "9,", "4,": End With
Celda.Copy
With Celda.Offset(, 2): .PasteSpecial xlPasteFormulas: .Replace "9,", "1,": End With
Next
Application.CutCopyMode = False

saludos,
hector.
Respuesta Responder a este mensaje
#2 SOREN
23/07/2008 - 16:06 | Informe spam
Estimado Hector :
Muchas gracias por tu respuesta y tu prontitud, pero podrías ser mas
explicito, es decir, ¿creo una macro? donde cambio/indico las columnas a
subtotalizar?
-nunca he grabado una macro,- que significan esas ordenes?
Gracias de nuevo

"Héctor Miguel" wrote:

hola, 'anonimo/a' ! (de "emagister" ?)

> Tengo una lista de datos los cuales los quiero subtotalizar con un campo
> (el de la columna a, es decir cuando cambien ese dato que me subtotalice las demas columnas)
> como indice de seleccion, pero en cada columna quiero usar una funcion, es decir
> en la columna b que es importe, usar "suma", en la C que es fecha, usar "maximo" en la columna D que es operacion, usar "promedio"
> y todo esto que me lo subtotalice en una sola linea, es decir, sin que me haga los subtotales en lineas consecutivas.
> Hasta ahora tengo que condensar todos los totales en una fila " a mano".
> He buscado informacion y no he visto este caso...

necesitas aplicar subtotales por macro (una sola funcion) y agregar/modificar las otras funciones SIN usar ya los subtotales (p.e.)

Dim Celda As Range
Application.ScreenUpdating = False
With Range("a2").CurrentRegion
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=2, Replace:=1, PageBreaks:=0, SummaryBelowData:=1
End With
For Each Celda In Range("a2").CurrentRegion.Offset(, 1).Resize(, 1).SpecialCells(xlCellTypeFormulas)
Celda.Copy
With Celda.Offset(, 1): .PasteSpecial xlPasteFormulas: .Replace "9,", "4,": End With
Celda.Copy
With Celda.Offset(, 2): .PasteSpecial xlPasteFormulas: .Replace "9,", "1,": End With
Next
Application.CutCopyMode = False

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
23/07/2008 - 22:32 | Informe spam
hola, !

... podrias ser mas explicito, es decir, creo una macro? donde cambio/indico las columnas a subtotalizar?
-nunca he grabado una macro,- que significan esas ordenes?



de acuerdo con los datos de tu consulta original, la macro espera que los datos para aplicar subtotales...
- esten en las columnas A, B, C y D
- tengan en la fila 1 los titulos o encabezamientos
- los datos a partir de la fila 2 esten ya ordenados

lo que hace es aplicar subtotales agrupando por la columna A y solo "sumando" por la columna B
despues copia la formula de la columna B a las columnas C y D (cambiando la funcion de suma a maximo y promedio)
con lo que obtienes las cuatro operaciones en la misma fila

para ejecutarla debes crear un modulo de codigo...
- abre el editor de vba (atajo de teclado: alt + F11)
- inserta un modulo nuevo (menu: insertar / modulo)
- copia/pega lo siguiente:

Sub Agrega_subtotales()
Dim Celda As Range
Application.ScreenUpdating = False
With Range("a2").CurrentRegion
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=2, Replace:=1, PageBreaks:=0, SummaryBelowData:=1
End With
For Each Celda In Range("a2").CurrentRegion.Offset(, 1).Resize(, 1).SpecialCells(xlCellTypeFormulas)
Celda.Copy
With Celda.Offset(, 1): .PasteSpecial xlPasteFormulas: .Replace "9,", "4,": End With
Celda.Copy
With Celda.Offset(, 2): .PasteSpecial xlPasteFormulas: .Replace "9,", "1,": End With
Next
Application.CutCopyMode = False
End Sub

regresa a tu hoja y ejecuta la macro:
- atajo de teclado: alt + F8
- selecciona el nombre de la macro y pulsa el boton de ejecutar (o la tecla enter)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
Tengo una lista de datos los cuales los quiero subtotalizar con un campo
(el de la columna a, es decir cuando cambien ese dato que me subtotalice las demas columnas)
como indice de seleccion, pero en cada columna quiero usar una funcion, es decir
en la columna b que es importe, usar "suma", en la C que es fecha, usar "maximo" en la columna D que es operacion, usar "promedio"
y todo esto que me lo subtotalice en una sola linea, es decir, sin que me haga los subtotales en lineas consecutivas.
Hasta ahora tengo que condensar todos los totales en una fila " a mano".
He buscado informacion y no he visto este caso...
Respuesta Responder a este mensaje
#4 SOREN
24/07/2008 - 08:25 | Informe spam
Ahor si lo he entendido, muchisimas gracias. Lo voy a intentar.
Un saludo


"Héctor Miguel" wrote:

hola, !

> ... podrias ser mas explicito, es decir, creo una macro? donde cambio/indico las columnas a subtotalizar?
> -nunca he grabado una macro,- que significan esas ordenes?

de acuerdo con los datos de tu consulta original, la macro espera que los datos para aplicar subtotales...
- esten en las columnas A, B, C y D
- tengan en la fila 1 los titulos o encabezamientos
- los datos a partir de la fila 2 esten ya ordenados

lo que hace es aplicar subtotales agrupando por la columna A y solo "sumando" por la columna B
despues copia la formula de la columna B a las columnas C y D (cambiando la funcion de suma a maximo y promedio)
con lo que obtienes las cuatro operaciones en la misma fila

para ejecutarla debes crear un modulo de codigo...
- abre el editor de vba (atajo de teclado: alt + F11)
- inserta un modulo nuevo (menu: insertar / modulo)
- copia/pega lo siguiente:

Sub Agrega_subtotales()
Dim Celda As Range
Application.ScreenUpdating = False
With Range("a2").CurrentRegion
.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=2, Replace:=1, PageBreaks:=0, SummaryBelowData:=1
End With
For Each Celda In Range("a2").CurrentRegion.Offset(, 1).Resize(, 1).SpecialCells(xlCellTypeFormulas)
Celda.Copy
With Celda.Offset(, 1): .PasteSpecial xlPasteFormulas: .Replace "9,", "4,": End With
Celda.Copy
With Celda.Offset(, 2): .PasteSpecial xlPasteFormulas: .Replace "9,", "1,": End With
Next
Application.CutCopyMode = False
End Sub

regresa a tu hoja y ejecuta la macro:
- atajo de teclado: alt + F8
- selecciona el nombre de la macro y pulsa el boton de ejecutar (o la tecla enter)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
>>> Tengo una lista de datos los cuales los quiero subtotalizar con un campo
>>> (el de la columna a, es decir cuando cambien ese dato que me subtotalice las demas columnas)
>>> como indice de seleccion, pero en cada columna quiero usar una funcion, es decir
>>> en la columna b que es importe, usar "suma", en la C que es fecha, usar "maximo" en la columna D que es operacion, usar "promedio"
>>> y todo esto que me lo subtotalice en una sola linea, es decir, sin que me haga los subtotales en lineas consecutivas.
>>> Hasta ahora tengo que condensar todos los totales en una fila " a mano".
>>> He buscado informacion y no he visto este caso...



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida