sábado, 13 de febrero de 2010

Validación de celdas con Lista o Tabla.

Exponía un usuario la siguiente cuaestión:
...TENGO UNA CELDA LLAMADA "INFRAESTRUCTURA" QUE TIENE UN MENU DESPEGABLE CON LAS SIGUIENTES ALTERNATIVAS PARA ELEGIR: VIAS - PUENTES - EDUCACION - SALUD
AHORA EN LA SIGUIENTE CELDA LLAMADA "TIPO", AHORA AQUI TENGO MI INCONVENIENTE, YA QUE CADA CAMPO DE "INFRAESTRUCTURA" TIENE SU CLASIFICACION, DE ESTA MANERA:
VIAS SUS TIPOS SON : FERREA - AUTOPISTA - TROCHA CARROZABLE
PUENTES SUS TIPOS SON: CARROZABLE - PEATONAL
EDUCACION SUS TIPOS SON: INICIAL - PRIMARIA - SECUNDARIA - SUPERIOR
SALUD SUS TIPOS SON: HOSPITAL - CENTRO DE SALUD - POSTA MEDICA - CLINICA
...

En su momento expliqué el uso de los rangos dinámicos aplicados a la Validación en celdas.
En esta ocasión trabajaremos de forma similar, pero empleando las Tablas o Listas (ver post).
Lo primero que haremos será crear una Tabla o Lista con cada uno de los rangos siguientes; la manera más fácil es seleccionar rango a rango y presionar o :


Una vez creadas las cinco 'Tablas', procederemos a Asignarles un nombre a los rangos descritos de nuestra hoja 'Ejemplo':
Educación =Ejemplo!$I$2:$I$5
Infraestructura =Ejemplo!$F$2:$F$5
Puentes =Ejemplo!$H$2:$H$3
Salud =Ejemplo!$J$2:$J$5
Vías =Ejemplo!$G$2:$G$4
(podemos recordar cómo en asignar nombres a rangos).

El uso de Tablas nos ofrece las mismas ventajas que nos daban los rangos dinámicos, en adelante cada vez que aumentemos el número de elementos de una Tabla, se incorporará automáticamente dentro del rango definido.
Veamos desde el Administrador de nombres la situación:


Observad cómo he incluido dentro de la Lista dos nuevos elementos y de manera automática han sido añadidos al rango nombrado como 'Vías'; de igual forma si eliminamos elementos con la herramienta Eliminar fila...
La forma de emplearlos en adelante es la misma que vimos en su momento en el post doble validación. En una celda, por ejemplo la B4, generaremos una Validación tipo lista, asignándole el rango 'Infraestructura' (ya que es este el primer nivel requerido):


Terminaremos vinculando el valor de la celda C4 en función al valor desplegado en B4; para ello generaremos de igual forma una nueva Validación tipo lista, pero usando la función INDIRECTO para que Excel pueda reconocer ese valor:


con lo que tendríamos el resultado deseado.

17 comentarios:

  1. Hola.

    Estoy tratando de hacer algo similar. No necesito condicionar la 2ª elección, tan sólo en varias columnas introducir datos que estén limitados por una tabla en otra hoja, más aun ¿puede ser de otro libro? Sería ideal para mí.
    El caso es que no consigo el paso de "Validación de datos". No me aparecen a elegir los rangos de la tabla que he creado ¿puede ser por usar 2003?

    Saludos.

    ResponderEliminar
  2. Hola,
    la Validación de datos funciona de igual forma para 2007 que para 2003. La idea para que funcione bien es asignar nombre a los rangos de celdas donde se encuentren los datos que quieras desplegar; si lo haces así no habrá problema en que lo uses en distintas hojas del mismo libro. Para emplearlo en distintos Libros, deberás usar un vínculo, algo parecido a esto:
    =Libro1!datos
    Siendo el 'Libro1' donde se encuentra el rango de datos a desplegar, llamado 'datos'.
    Espero te haya aclarado algo.
    Slds

    ResponderEliminar
    Respuestas
    1. Disculpe la pregunta que es y para que sirve el $H$3en excel tengo muchas dudas y quisiera saber si usted me puede explicar

      Eliminar
    2. Hola,
      $H$3 indica que nos referimos a esa celda H3... pero de manera absoluta, esto es, que daría igual donde copiáramos y pegáramos la fórmula que contuviera esa referencia absoluta, siempre nos dirigiríamos a la celda H3.

      Hay tres tipo de referencias:
      absolutas: =$H$3
      mixtas: =$H3 ó =H$3
      y relativas: =H3

      cada una de ellas se empla según el contexto.

      Espero haberte aclarado algo al respecto.
      Slds

      Eliminar
  3. Vale, ya lo he conseguido entre hojas diferentes. Mi problema estaba en usar espacios en blanco, al nombrar los rangos.
    Pero al tratar de hacerlo desde otro libro me da el siguiente error "No se pueden usar referencias a otros libros u hojas de cálculo para criterios de Validación de datos."
    ¿Hay alguna otra opción?

    ResponderEliminar
  4. Correcto,
    pensé que hablabas de vínculos sencillos con nombres asignados a rangos.
    Efectivamente el error que te devuelve Excel es claro, no se pueden usar referencias a otros libros u hojas de cálculo para criterios de Validación de datos..
    Quizá deberías replantearte si merece la pena tener dos Libros o crear más hojas en un sólo libro.
    Hasta donde yo se no existe otra opción...
    Suerte!!

    ResponderEliminar
  5. buenos dias

    necesito homologar unas listas en excel, que qeuiero hacer: tomar los tados de valores de un rchivo y colocarlos en otro archivo con datos del mismo nombre, me explico mejor en un archivo tengo una lista de precios y en otra tengo otra lista de precios pero sin precios que tienen los mismos items pero en un orden aleatorio

    ResponderEliminar
  6. Hola Daniel José,
    si quieres trasladar los precios de un archivo a otro, yo emplearía una función de búsqueda vertical BUSCARV.
    Echa un vistazo a esta entrada, quizá te aclare más sobre el uso de esta función
    http://excelforo.blogspot.com/2009/06/funciones-de-busqueda-buscarv-y-buscarh.html
    Slds

    ResponderEliminar
  7. Cuando realizo la validación en una celda funciona sin problema, no se como copiar esta validación en la columna,, si lo hago me aparece siempre las opciones de la primera lista.

    ResponderEliminar
  8. Hola,
    las celdas validadas se refieren a un rango definido dentro de su configuración de Validación de datos, por tanto no funcionan como una celda formulada. Es normal que al arrastrar o copiar siempre te aparezca las opciones de la primera lista.
    Slds

    ResponderEliminar
  9. Hola. En relación con este post,
    ¿Existe alguna manera de hacer esto sin necesidad de crear manualmente las listas de validación en cada celda? En mi caso tengo casi 500 celdas en hojas distintas. ¿No existe otra opción que no sea crear todas las listas de validación en cada celda?

    Un saludo

    ResponderEliminar
  10. Hola Raúl,
    si las listas están definidas en rangos concretos y controlados, esto es, que sabes dónde empiezan y acaban cada uno de ellos, quizá se podrían crear y asignar los nombres de manera sencilla con una macro, aunque habría que ver la situación concreta para estimar la dificultad de automatizar esta tarea.
    En tu caso, por lo que entiendo, tus rangos están dispersos por celdas y hojas de tu libro, lo cual complicaría la creación de listas (salvo que se rijan por un patrón claro).
    Quizá sea mejor adjuntaras un ejemplo y me lo enviaras a:
    excelforo@gmail.com
    para poder revisar tu planteamiento.
    Slds

    ResponderEliminar
  11. Problema resuelto, lo único que hay que hacer es asegurarse de que la dirección de la celda en la regla de validación sea relativa, no absoluta.
    A1 es realtiva (cambia al ser arrastrada); $A$1 es absoluta (no cambia al ser arrastrada).
    Gracias

    ResponderEliminar
  12. Hola, como puedo validar con datos de dos o mas tablas,

    ResponderEliminar
    Respuestas
    1. Hola,
      no es posible tal cosa desde el estándar.
      En todo caso habría que generar un listado empleando macros para cargar desde un único sitio la validación de datos, uniendo tantos distintos elementos de diferentes tablas como existieran

      Saludos cordiales

      Eliminar
  13. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  14. Hola.
    Usando validación de datos para realizar desplegables me encuento con el siguiente problema.
    Tengo un primer desplegable (capacidades) con las capacidades de distintos tipos de botellas. Relaciono el siguiente desplegable (tipo de botella) al anterior, mediante validación de datos (indirecto) y el siguiente (tipo de caja) lo valido a la celda anterior (tipo de botella).
    Mi duda es si puedo realizar otro desplegable relacionado a una celda ya relacionada (tipo de botella), ya que me da error al tener nombres de tablas identicos.

    Gracias por sus aportaciones.

    ResponderEliminar

Nota: solo los miembros de este blog pueden publicar comentarios.