Filtro

19/01/2008 - 13:31 por Gabriel | Informe spam
Quiero a partir de una tabla cuya primera columna son fechas y las siguientes
datos, filtrar a cuatro lugares distintos de la misma hoja las fechas y datos
correspondientes a cada trimestre del año y sumar los datos en cada tabla
resultante.
Gracias anticipadas

Preguntas similare

Leer las respuestas

#1 excelamedida.com
20/01/2008 - 01:24 | Informe spam
Hola Gabriel!
Te comento...
para que funcione el ejemplo que expongo correctamente sigue estas
instrucciones y si necesitas modificarlo seguro que podrás adaptarlo a
tus necesidades.

En la fila 3 he puesto los titulos de las columnas, Fecha, Datos y
Trimestres
en la celda A4 pones la primera fecha, en la B4 el dato que le
corresponda y en C4 tienes que poner esta formula:

=SI(Y(MES(A4)>0;MES(A4)<=3);"trimestre
1";SI(Y(MES(A4)>3;MES(A4)<=6);"trimestre
2";SI(Y(MES(A4)>6;MES(A4)<=9);"trimestre
3";SI(Y(MES(A4)>9;MES(A4)<);"trimestre 4"))))

Esta formula copiala tantas filas tengas en tu base de datos.
Bien, sigo, en la celda C1 escribe el texto Trimestres (puedes elegir
otra y empezar la base de datos desde la fila 2 pero para eso tendrás
que modificar la macro)

Ahora en un modulo "normal" pega el código que te pongo a
continuación:

Sub Trimestres()
Range("C2").Select
ActiveCell = "trimestre 1"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("D20"), _
Unique:=False
Range("D19") = "=SUM(E:E)"

ActiveCell = "trimestre 2"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("G20"), _
Unique:=False
Range("G19") = "=SUM(H:H)"

ActiveCell = "trimestre 3"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("J20"), _
Unique:=False
Range("J19") = "=SUM(K:K)"

ActiveCell = "trimestre 4"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("M20"), _
Unique:=False
Range("M19") = "=SUM(N:N)"

ActiveCell.Value = ""
End Sub

Ahora con esto en tus manos ajusta todo lo que quieras a tu gusto,
si tienes alguna duda...

un saludo,
JJE


Quiero a partir de una tabla cuya primera columna son fechas y las siguientes
datos, filtrar a cuatro lugares distintos de la misma hoja las fechas y datos
correspondientes a cada trimestre del año y sumar los datos en cada tabla
resultante.
Gracias anticipadas
Respuesta Responder a este mensaje
#2 Héctor Miguel
20/01/2008 - 07:08 | Informe spam
hola, Gabriel !

cuando las consultas son ambiguas/cortas/... (faltas de los detalles "importantes")...
quien te puede asegurar que recibiras "la propuesta esperada" (a la primera y sin errores) ???
(me explico):

Quiero a partir de una tabla cuya primera columna son fechas y las siguientes datos



=> de cuentas columnas estamos hablando, donde esta "la tabla" (rangos) ?
los datos de fecha son datos-fecha reales ? (o texto simulando fechas)

filtrar a cuatro lugares distintos de la misma hoja... datos correspondientes a cada trimestre



=> los cuatro lugares los necesitas en vertical/horiontal/... ? (o en otros rangos -in/pre-"determinados")

y sumar los datos en cada tabla resultante.



=> los datos... de cual/es columna/s ???

(si te animas a comentar los detalles que no se pueden ver desde este lado del mensaje)... :D
saluos,
hector.
Respuesta Responder a este mensaje
#3 Gabriel
20/01/2008 - 12:05 | Informe spam
"Héctor Miguel" wrote:

hola, Gabriel !

cuando las consultas son ambiguas/cortas/... (faltas de los detalles "importantes")...
quien te puede asegurar que recibiras "la propuesta esperada" (a la primera y sin errores) ???
(me explico):

> Quiero a partir de una tabla cuya primera columna son fechas y las siguientes datos

=> de cuentas columnas estamos hablando, donde esta "la tabla" (rangos) ?
los datos de fecha son datos-fecha reales ? (o texto simulando fechas)

> filtrar a cuatro lugares distintos de la misma hoja... datos correspondientes a cada trimestre

=> los cuatro lugares los necesitas en vertical/horiontal/... ? (o en otros rangos -in/pre-"determinados")

> y sumar los datos en cada tabla resultante.

=> los datos... de cual/es columna/s ???

(si te animas a comentar los detalles que no se pueden ver desde este lado del mensaje)... :D
saluos,
hector.



Gracias Hector por atenderme. Me explico:
Base de datos original:
1ª columna: Numeracion correlativa
2ª columna: Fechas
3ª columna: Nombre
4ª columna: Importe en euros
5ª columna: IVA en euros
6ª columna: Total en euros
7ª columna: Nº de trimestre, calculado segun fecha (1TRI, 2TRI, 3TRI, 4TRI)

Nº filas: 600


Nº columnas: 7

Deso que en la misma hoja me aparezcan automaticamente 4 bases, una por cada
trimestre, con las mismas columnas que la base de datos original. En la 1ª
base solo habrá datos del primer trimestre, en la segunda serán del 2º
trimestre, etc.
Como final quiero que en cada tabla me aparezca el total de las columnas 4ª,
5ª y 6ª.
Creo que me he explicado mejor. Pido disculpas. Saludos cordiales
Respuesta Responder a este mensaje
#4 Gabriel
20/01/2008 - 12:16 | Informe spam
"excelamedida.com" wrote:

Hola Gabriel!
Te comento...
para que funcione el ejemplo que expongo correctamente sigue estas
instrucciones y si necesitas modificarlo seguro que podrás adaptarlo a
tus necesidades.

En la fila 3 he puesto los titulos de las columnas, Fecha, Datos y
Trimestres
en la celda A4 pones la primera fecha, en la B4 el dato que le
corresponda y en C4 tienes que poner esta formula:

=SI(Y(MES(A4)>0;MES(A4)<=3);"trimestre
1";SI(Y(MES(A4)>3;MES(A4)<=6);"trimestre
2";SI(Y(MES(A4)>6;MES(A4)<=9);"trimestre
3";SI(Y(MES(A4)>9;MES(A4)<);"trimestre 4"))))

Esta formula copiala tantas filas tengas en tu base de datos.
Bien, sigo, en la celda C1 escribe el texto Trimestres (puedes elegir
otra y empezar la base de datos desde la fila 2 pero para eso tendrás
que modificar la macro)

Ahora en un modulo "normal" pega el código que te pongo a
continuación:

Sub Trimestres()
Range("C2").Select
ActiveCell = "trimestre 1"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("D20"), _
Unique:=False
Range("D19") = "=SUM(E:E)"

ActiveCell = "trimestre 2"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("G20"), _
Unique:=False
Range("G19") = "=SUM(H:H)"

ActiveCell = "trimestre 3"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("J20"), _
Unique:=False
Range("J19") = "=SUM(K:K)"

ActiveCell = "trimestre 4"
Range("A3:C15").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("C1:C2"), _
CopyToRange:=Range("M20"), _
Unique:=False
Range("M19") = "=SUM(N:N)"

ActiveCell.Value = ""
End Sub

Ahora con esto en tus manos ajusta todo lo que quieras a tu gusto,
si tienes alguna duda...

un saludo,
JJE


> Quiero a partir de una tabla cuya primera columna son fechas y las siguientes
> datos, filtrar a cuatro lugares distintos de la misma hoja las fechas y datos
> correspondientes a cada trimestre del año y sumar los datos en cada tabla
> resultante.
> Gracias anticipadas



Me ha gustado mucho tu respuesta, que agradezco. Esta tarde trataré de
plasmarla en mi aplicación y te diré como funciona. Mis conocimientos son
escasos, por lo que valoro enormemente la ayuda

Respuesta Responder a este mensaje
#5 excelamedida.com
20/01/2008 - 14:51 | Informe spam
Hola, Gabriel!
Ya sabes que faltaban muchos detalles por dar, por eso la respuesta
seguro que no se adapta exactamente a tus necesidades, pero por lo
menos tienes la "posible solución" ajustandola tú a tu gusto.

Suerte,
JJE

Me ha gustado mucho tu respuesta, que agradezco. Esta tarde trataré de
plasmarla en mi aplicación y te diré como funciona. Mis conocimientos son
escasos, por lo que valoro enormemente la ayuda
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida