Listas de validación con filtros:base de datos

22 envíos / 0 nuevos
Último envío
Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Listas de validación con filtros:base de datos

Hola

Desde hace algunas semanas, he estado buscando como poder efectuar una base de datos con listas de validación que me filtren los datos, quiza a través de una Macro, dado que se estará ingresando nuevos datos continuamente.

En sí, lo que busco es que seleccionando de tres celdas tres criterios de listas de validación puedan filtrarme esos criterios. Mi base de datos es por ejemplo: nombre contacto, telefono, correo, nombre institucion, tipo de institucion (privada o publica) y las listas de validacion que tengo, son seleccionar entre área, que son 5, elegir pais y elegir tipo de institucion.

Por ejemplo, si selecciono en área salud, y pais México y tipo de institucion privada, solo se filtren los datos correspondientes a esos criterios. No se que tan dificil pudiera ser o quíza sea algo sencillo.

Muchas Gracias y Espero su respuesta!

Jesús

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Listas de validación con filtros:base de datos

No sé si he entendido bien ¿quieres filtrar la lista de datos? entonces emplea el Filtro (en la versión 2003 se llamaba autofiltro).

autofiltro de Excel, permite filtrar los datos de una lista o base de datos

verás que en los encabezados de tus datos aparecen unos desplegables para poder elegir los criterios de filtrado.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de validación con filtros:base de datos

 

Hola Paco

Gracias por contestarme hoy mismo.

Creo que no me explique muy bien. Es filtrar los datos en base a unas listas de validación, (no los mismos encabezados), es decir, seleccionar unas de las opciones que me despliegue la lista, que en este caso son 3  y me despliegue la informacion corespondiente, el chiste es que conforme vaya ingresando otro renglon de informacion, pueda incluir al momento de volver a seleccionar en la lista de validacion. No pude adjuntar la imagen para explicarme mejor, por lo que te adjunto el archivo de excel.

Muchas gracias y espero tu respuesta

Saludos

Jesús

AdjuntoTamaño
File red.xlsx43.76 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Listas de validación con filtros:base de datos

Primero lo más sencillo:

Para que se incluyan los nuevos datos que se añadan, lo mejor es convertir tus datos en una tabla, así irá creciendo con los datos nuevos que se añadan debajo, y las fórmulas, filtros, y cualquier otra cosa se actualizará al nuevo tamaño de los datos sin que tengas que hacer nada.

las tablas de Excel son lo mejor de la versión 2007

En cuanto al filtrado, esto se resuelve con lo que Excel llama "Filtro avanzado", aparece como "...avanzadas".

Filtro Avanzado de Excel

Para que se filtre automáticamente, tendrás que crear una macro que ejecute el filtro cuando establezcas los criterios.
Puedes también poner un botón que active el filtro en vez de hacerlo automáticamente.

Pero veo un problema en tus datos: quieres filtrar por área, pero no veo que exista un campo donde se diga a qué área pertenece cada registro. Lo mismo ocurre con el país ¿dónde dices en qué país está cada uno? si no lo pone en ningún sitio, Excel no lo va a poder adivinar.

necesitarás añadir un campo "área" y un campo "país".

Una vez que los hayas creado, necesitas definir los criterios para el filtro. Esto se hace con un rango que tiene los encabezados de los campos arriba y debajo la condición.

en tu caso, la condición es el valor que elijas en la lista de validación, así que tu rango de criterios para el filtro será algo así:

criterios para un filtro avanzado

puedes complicarlo un poco para que cuando no haya nada en la celda de la validación, la condición quede en blanco.

hazlo a mano una vez, y luego graba una macro para ver cómo se automatiza.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de validación con filtros:base de datos

Paco, muchisimas gracias.

Creo que esa es la mejor opcion para lo que estoy buscando

Aun así, te comentó que ya habia intentado hacer filtros avanzados, pero no me despliega las opciones que aparecen en la zona de criterios, no sé si sea mi excel, o porque será que no me despliega las opciones. No se si me puedas ayudar :( porque se me hace muy raro.

Saludos

Jesús

AdjuntoTamaño
File red.xlsx49.19 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
esto no ha cambiado

que yo sepa esto no ha cambiado con las diferentes versiones.

No tiene que desplegar nada para los criterios, lo tienes que escribir a mano en unas celdas de la hoja.

Luego en el filtro avanzado simplemente le indicas dónde está el rango de celdas que contiene tus criterios

Mira las funciones de base de datos, las que empiezan por BD, porque los criterios se definen igual.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: esto no ha cambiado

 

Hola Paco muchas gracias!

Ya descubré como era, una última cosa quisiera preguntarte, es:

Cómo poder hacer o poner el boton que active el filtro en vez de hacerlo automático? fue algo que me comentaste anteriormente.

 

Muchas gracias y espero tu respuesta

 

Saludos

Jesús

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: esto no ha cambiado

necesitas en primer lugar tener una macro que active el filtro (puedes grabarla, para este caso no necesitas mucho más)

Luego tienes que poner un botón en la hoja. Están en la pestaña Programador (si no tienes esta pestaña, mira aquí cómo activarla) dentro del grupo controles

insertar un botón

dibuja el botón donde quieras en tu hoja (es como si dibujases un rectángulo)

aparecerá un formulario para elegir una macro que se ejecute al pulsar el botón.

asignar macro a botón

también puedes asignar la macro más tarde desde el menú contextual del botón

asignar macro a un botón

 

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de validación con filtros:base de datos

Hola Paco

Primero que nada agradecerte el apoyo que me brindaste  con lo de los filtros, muchas gracias!

 

Segundo, solo para preguntar de un problema que tuve, asigne la macro al botón que  me dijiste para la búsqueda del contacto, pero lo que pasa es que cuando agrego nuevo y más contactos a la tabla, y realizo  una nueva búsqueda en donde no corresponden los criterios al nuevo contacto y como quiera me filtra ese contacto, es decir, si el contacto nuevo que agregue es del área (criterio) de seguridad, cuando realizo una nueva búsqueda de contactos de salud, me despliega a los contactos de salud y al de seguridad que acabo de ingresar.

No sé si es un error en la programación. Y sino fuera el caso, que sintaxis o sentencia, es la necesaria y me recomiendas para agregarla al lenguaje de visual basic para la macro.

Muchisimas gracias  y espero tu respuesta

 

Saludos

Jesús 

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Listas de validación con filtros:base de datos

El filtro se aplica sobre un rango.

Cuando grabaste la macro, se quedó grabado el rango que tenía datos en ese momento.
los nuevos datos no se están filtrando, por eso aparecen a continuación de la lista friltrada.

Como quieres que los nuevos datos también se consideren, el rango de filtrado se tiene que actualizar.
 

¿creaste una "tabla" con los datos?

mira qué rango está empleando la macro.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de validación con filtros:base de datos

 

Hola Paco

Muchas Gracias,

Encontré el error. Solo que cuando la estaba probando me entró a la curiosidad, de que si filtraba un sólo dato en los tres criterios, no me lo buscaba, es decir, si no seleccionaba nada en tipo de institucion (privada, publica), área, porque queria solo que me buscara por un país en especifico, no me hacia la busqueda. Sabes por qué estará pasando esto? Es posible arreglaro?

Gracias y Espero tu respuesta

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Listas de validación con filtros:base de datos

¿qué aparece en el filtro cuando dejas una celda vacía?

seguramente, si tienes una fórmula que hace referenca a la celda vacía, tendrás un cero, asi que estás buscando registros que tengan un cero.

Utiliza la función SI para devolver lo correcto cuando dejes la celda vacía. para criterios de texto el criterio también puede incluir caracteres comodín ? *

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: Listas de validación con filtros:base de datos

 

Hola paco,

Aqui solicitando tu ayuda de nuevo por favor.

Me gustaría saber a que te refieres con los caracteres comodín? Y sobre todo, si utilizo la función tendría que utilizar también la función OR (O), como es que quedaría la instrucción para una celda este vacía?

IF Instrucción (c9 = 0) then ???? (siendo C9 la celda que esta vacia, es decir, que muestra el valor de cero???)

 

De antemano gracias

Espero tu respuesta

 

Saludos,

Jesús

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
sobre los comodines

un comodín sustituye a un caractes (?) o a varios caracteres (*)

por ejemplo, si no sabes si el apellido Pérez tiene acento o no, puedes buscar los que coincidan con P?rez

mira este ejemplo de cmodines y celdas vacías

para funciones condicionales en las fórmulas de la hoja de cálculo utiliza la función SI  de Excel, que está precisamente para esto.

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: sobre los comodines

Hola paco, muchas gracias por la información

Realize el codigo para lo de la instrucción condicional SI, pero al momento de ejecutarla me aparece un error en la sintaxis. Cuando he trabajado en Java utilizo el simbolo != para definir que es diferente, entonces no sé si el simbolo <> pueda utilizarlo aqui. Lo que busco es para cuando solo uno de los criterios quede en 0, me busca la informacion de la tabla de los otros dos criterios que no me aparece el valor cero. Te adjunto el código.

Sub Busqueda_detallada()
If "J22" = 0 And "K22" <> 0 And "L22" <> 0 Then
    Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
        :=Range("K21:L22"), Unique:=False
        End If
       
        If "J22" <> 0 And "K22" <> 0 And "L22" = 0 Then
          Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
        :=Range("J21:K22"), Unique:=False
       
        End If
       
       
  End Sub

Muchas Gracias Paco,

 

Saludos,

Jesús

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
"J22" no es la celda J22

en tus comparaciones estás comparando "J22" pero supongo que lo que te interesa es el contenido de la celda J22

prueba con [J22] entre corchetes para que lo interprete como una referencia a un rango

también puedes ponerlo como Range("J22")

por cierto, distinto es como tú dices, <>

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

Jesus_2012
Imagen de Jesus_2012
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 17/05/2011 - 15:42
Puntos: 390
Re: "J22" no es la celda J22

 

Muchisimas gracias Paco, ese era el problema.

Fijate que cuando introduje este otro if, me marco error en esa parte que señalo en negritas. Sabrás a que se deba?

If [J22] <> 0 And [K22] = 0 And [L22] <> 0 Then
    Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
        :=Range("J21:J22" And "L21:L22"), Unique:=False  (Este renglón, me marco error)
        End If
       

Muchas Gracias!

 

Saludos,

Jesús

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: "J22" no es la celda J22

no puedes utilizar AND dentro de RANGE.

además, creo que los criterios para el filtro tienen que ser un rango continuo. Utiliza un rango para este caso (aunque tengas que repetir casi lo mismo que para el otro caso) o también puedes colocar las celdas del criterio de manera que para un caso utilices las dos primeras columnas y para el otro caso utilices tres columnas. el orden de los campos de los criterios no tiene por qué ser igual que el orden de los campos en la base de datos, así que reordénalo para que en un caso tengas J21:K22 y en el otro caso J21:L22

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
Re: "J22" no es la celda J22

 

Hola Paco, gracias por el comentario

Aún así el problema no se pudo resolver. Para el primer caso utilizo las primeras dos columnas, para el segundo, las últimas dos, pero para el tercero cuando selecciono de rango las tres, aún sigue sin filtrarme la información. No se si será por el valor del criterio que me aparece en valor 0, que trate de escribir el comando, como lo de los comodínes, de sólo poner igual para celdas vacías, pero aún así no me filtra. Te adjunto los comandos.

If [J22] = 0 And [K22] <> 0 And [L22] <> 0 Then
   Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
        :=Range("K21:L22"), Unique:=False
        End If
       
        If [J22] <> 0 And [K22] <> 0 And [L22] = 0 Then
          Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
        :=Range("J21:K22"), Unique:=False
        End If
        
        If [J22] <> 0 And [K22] = ? (comodín) And [L22] <> 0 Then
          Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
        :=Range("J21:L22"), Unique:=False
        End If

Muchas gracias, ojalá pueda tener solución.

Saludos,

Jesús

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 7 horas 9 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: "J22" no es la celda J22

Por qué no pones las condiciones en el mismo bloque IF, algo así:

If [J22] = 0 And [K22] <> 0 And [L22] <> 0 Then
    Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
    :=Range("K21:L22"), Unique:=False
ElseIf [J22] <> 0 And [K22] <> 0 And [L22] = 0 Then
      Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
    :=Range("J21:K22"), Unique:=False
Else
    Range("Table2[#All]").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange _
    :=Range("J21:L22"), Unique:=False
End If
 

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

visitante (no verificado)
Imagen de visitante
un poco tarde esta respuesta

un poco tarde esta respuesta pero creo que mas facil es nombrar rangos correspondiente a la lista de validacion y concatenar la formula con la funcion indirecto

AINHOA
Imagen de AINHOA
Offline
última acción: Hace 4 años 10 meses
alta: 31/05/2019 - 08:35
Puntos: 10
filtro

[comentario movido a tema nuevo en el foro: http://www.necesitomas.com/listas-validacion-filtrosbase-datos]