Foros del Web » Soporte técnico » Ofimática »

Filtro

Estas en el tema de Filtro en el foro de Ofimática en Foros del Web. Hola a tod@s. Tengo una hoja Excel con unos 3000 registros, cada uno tiene diversos datos. La hoja que me dieron para modificarla tiene un ...
  #1 (permalink)  
Antiguo 01/02/2006, 05:41
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Filtro

Hola a tod@s. Tengo una hoja Excel con unos 3000 registros, cada uno tiene diversos datos. La hoja que me dieron para modificarla tiene un filtro ( autofiltro ) que dependiendo de lo que se elige saca los registros pertinentes ( si eliges T1, salen todos los registros que tienen T1). Ahora me han pedido que cuando se eliga un valor del filtro salgan ademas de T1 (si es q eliges T1) otros registros mas conforme a cierto criterio. ¿Alguien podria decirme como se hace?,¿hay q usar un filtro avanzado?¿alguien conoce un buen tutorial sobre filtros?, es q sobre este tema no se mucho y la ayuda del Excel no me ayuda, valga la rebundancia. Muchas gracias a todos y saludos
  #2 (permalink)  
Antiguo 01/02/2006, 06:50
Avatar de judoka  
Fecha de Ingreso: enero-2004
Ubicación: viña del mar
Mensajes: 180
Antigüedad: 20 años, 3 meses
Puntos: 3
si el otro criterio esta en la misma columna , al momento de filtrar debes escojer personalizar y ahi agregar los criterios. Si el otro criterio esta en otra columna solo debes escojer el criterio correspondiente en cada columna.
Yo creo que para lo que quieres el filtro automàtico es suficiente,
__________________
hay tres tipos de matemáticos, los que saben contar y los que no.
Oscar
  #3 (permalink)  
Antiguo 02/02/2006, 03:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias por tu respuesta judoka, el problema es q para cada T (hay unas 24), deben presentarse determinados registros, q son distintos para cada T. Te explico, para T7, por ejemplo, se deben listar los registros que tengan T1,T2,T3,T4,T6,T7 en una columna, es decir, existe una columna que tiene un valor de T para cada registro. ¿Se puede hacer esto con filtros?. He pensado usar VBA, en el evento de una lista desplegable, hacer un select que evalua todas las condiciones y lista los registros pertinentes. ¿Se te ocurre algo mejor?. Chao
  #4 (permalink)  
Antiguo 02/02/2006, 06:07
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
En los autos filtros tienes unas opciones en "personalizada" que pone: "empieza por", "no empiece por", "contenga" , etc. Si eso no te sirve, la única opción es usar los filtros avanzados, sea directamente o por medio de VBA.
Estos filtros necesitan a parte de la tabla de datos una pequeña tabla de criterios. Estos tienen que tener títulos que están en la tabla de datos (no es obligatorio que estén todos los títulos). Luego las celdas que están debajo de los títulos se utilizan para escribir las condiciones que deben cumplir. En tu ejemplo, deberías escribir en A1 el título (ej:nombre), en A2 T1, en A3 T2, en A4 T3, en A5 T4, en A6 T5 y sucesivos. De esta forma te sacará todas las filas que tengan T1,T2,T3,T4 o T5 en la columna nombre.
Yo estoy trabajando con excel y VBA y ya he tenido que hacer este tipo de filtros, aí que si tienes alguna duda coméntamela.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #5 (permalink)  
Antiguo 06/02/2006, 04:08
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracias por vuestras respuestas. Me ayudaron a saber un poquito mas sobre VBA,pero mi problema no se soluciono.
Hice una macro que filtrara registros cuando se seleccionara un opcion en la lista desplegable. El problema es que al tener q comprobar una celda de cada registro tardaba mucho ( tengo mas de 3000 registros ). Con los filtros avanzados he conseguido filtrar de un modo correcto, pero para cada opcion a filtrar debo cambiar el criterio cada vez( datos--filtro--filtro avanzado ). Me preguntaba si existe algun objeto en VBA que te permita acceder al filtro avanzado y cambiar su rango de criterios con codigo VB. He estado mirando el examinador de objetos de VBA y solo encontre algo sobre autofiltros. Muchas gracias.
  #6 (permalink)  
Antiguo 06/02/2006, 06:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 170
Antigüedad: 18 años, 5 meses
Puntos: 1
Este código te hace un filtro avanzado de lo que tengo en Catálogo actuadores en las columnas desde AZ hasta DN en base a los criterios que están entre A2 y N3 y me muestra los resultados en otra hoja a partir de la celda M1, ocupando lo que sea necesario hacia la derecha y hacia abajo.

Sheets("Catálogo actuadores").Range("AZ:DN").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Catálogo actuadores").Range("A2:N3"), CopyToRange:=Range("M1"), Unique:=False

El range lo puedes hacer dependiente de las celdas necesarias sustituyendolo por cells(num de fila, num de columna).De esta forma mediante excel puedes elegir el número de celdas que necesites. Yo no te aconsejo que varíes este número, es mejor que tengas todos los títulos que tengas en tus registros y si ese criterio no lo necesitas esa vez, dejalo en blanco y solucionado. De esta forma evitas complicarte inútilmente la vida y si el día de mañana tienes que meter nuevos criterios será más sencillo.

Espero que te sirva.
__________________
El sabio no dice nunca todo lo que piensa,
pero siempre piensa todo lo que dice.
Aristóteles :pensando:
  #7 (permalink)  
Antiguo 07/02/2006, 03:12
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Hola a todos, gracias por vuestras respuestas. El filtro que queria ya lo hice, hice un filtro avanzado, lo meti en una macro y vi el codigo q generaba y a partir de ahi lo adapte. Es mas o menos la respuesta de PotyPoty ( gracias por tu ayuda ). Ahora tengo otro problema ( siempre hay uno mas ), os cuento:
Debo filtrar opciones que son T1,T10,T11,T12..... Al querer filtrar solo los registros que tengan T1, lo hace bien pero tambien presenta los registros con T11,T12,T13 hasta T19, es decir que al filtrar mira si la celda contiene la cadena T1. El codigo del filtro es:
Public Sub rango(rang As String)

Range("E2782").Select
Range("A1:F2782").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range(rang), Unique:=True
End Sub

Donde rang es un String que contiene el rango de criterios.¿Alguien sabe como hacer para q al elegir T1 solo saque los T1 y no todo lo demas?,¿como hacer q no filtre con el criterio de contiene a?.

Muchas gracias y perdonad si soy muy pesado. Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:52.