miércoles, julio 19, 2006

Listas desplegables dependientes en Excel con Validación de Datos.

Ya hemos visto que la función Validación de Datos de Excel (Datos---Validación de Datos) permite controlar los datos que son introducidos en una celda. Una de las posibilidades es crear una lista desplegable de la cual el usuario puede elegir el valor a introducir en la celda.
En una nota anterior hemos tratado como evitar duplicados con validación con validación de datos. En otra hemos mostrado un modelo para asignar operarios a máquinas, de manera que cada operario asignado "desaparezca" de la lista desplegable.

En esta nota mostraremos otras posibilidades de crear listas desplegables dependientes.

Supongamos por ejemplo, que queremos de acuerdo al país elegido en una celda, la lista desplegable en la celda contigua muestre solamente ciudades de ese país.

Los pasos a seguir son:

1 – creamos nombres que contengan la lista de los países y las listas de las ciudades de cada uno de los países. Es importante que el nombre del rango que contiene las ciudades sea idéntico al nombre del país.



2 – en la celda de los países aplicamos validación de datos, con la opción "lista" usando el nombre "países"



3 – en la celda de las ciudades aplicamos validación de datos, también con la opción "lista", pero en este caso aplicamos la función INDIRECTO para crear una referencia dinámica al nombre que contiene la lista:

=INDIRECTO($A$5)

Este es el motivo que el nombre del rango de las ciudades coincida con el nombre del país



A partir de este momento, al elegir un nombre de país en la celda de países, la lista de validación de datos se ajusta al nombre que contiene los nombre de las ciudades de ese país




Todo sobre listas desplegables en Excel, técnicas avanzadas y descarga gratuita de ejemplos  en la Caja de Herramientas Excel - Listas Desplegables de JLD. Ver la nota o ir a la página de descarga de la guía.





207 comentarios:

  1. Hola quisiera utilizar esta herramienta en un campeonato en el cual voy ingresando los datos fecha a fecha segun los jugadores que juegan y que estos saldran de una lista desplegable que dependeran de los equipos q tambien saldran de una lista despegable, el formato es practicamente el mismo que pones en el ejemplo el problema radica que lo quiero hacer es una plantilla que me servira para otros ejemplos y los nombres ya no seran los mismos porque los nombres de los equipos cambiaran y obviamente los nombres de los rangos tambien y quisiera evitar estar cambiando esto, gracias por tu ayuda.

    ResponderBorrar
  2. Hola, lo que tenes que hacer es usar rangos dinàmicos en la definición de los nombres. Por ejemplo, en lugar de definir paises=Hoja1!$E$4:$E$7
    definis el nombre como
    paises (suponiendo que el rango empieza en la celda E1) como
    paises=DESREF(E1,0,0,contara(E:E)-1,1). Lo mismo con los otros nombres.
    Esta definición es dinámica y a medida que agregues nombres a la lista, iran apareciendo en la lista desplegable.
    Podés leer una explicación sobre rangos dinámicos en esta nota.
    Sobre la función DESREF podés leer esta nota

    ResponderBorrar
  3. Hola Jorge, muy buenos tus ejemplos, te felicito por tu gran contribucion, Necesito, si está en tus posibilidades ayudarme a resolver esto, tengo una lista con 2 columnas, en la columna 1 el nombre del pais y en la otra el codigo del pais, Por ejemplo: Venezuela y en la otra columna ve, Colombia co, Argentina ar, Bolivia bo y asi sucesivamente, para que el usuario escoja la frase con el nombre del pais pero luego de la seleccion quede en una columna, el valor del codigo del pais que es el que me iteresa como programador, y al usuario pues, le interesaria la frase del nombre del pais ya que es entendible para ellos.

    ResponderBorrar
  4. La forma más sencilla de hacerlo sería tener una tabla con los nombres de los países en una columna y las abreviaciones en la columna contigua. Luego, en la celda contigua a la celda donde se elige el país pones una fórmula con la función BUSCARV:
    =BUSCARV(celda con nombre de país;lista de países;2;0)

    ResponderBorrar
  5. Jorge: antes que nada muchas gracias por tener este blog, me ha salvado las papas varias veces...
    Te consulto lo siguiente, quiero usar una lista desplegable que tome los datos (de la lista) desde otro archivo de excel que tiene la base... se puede? como? El archivo de la base, debe estar abierto para que se despliegen los contenidos de la lista?
    Muchas gracias, saludos. Damian.

    ResponderBorrar
  6. Hola Damián,
    el método de las listas desplegables dependientes se basa en la función INDIRECTO. Esta función no trabaja cuando con archivos cerrados.
    En esta nota sobre INDIRECTO con cuadernos cerrados puedes ver algunas soluciones a este problema.

    ResponderBorrar
  7. Me ha servido bastante tu blog, gracias!!!. Mi inquietud: en el ejemplo de los países y las ciudades, después de haber elegido un país y haber elegido una ciudad correspondiente a ese país, y luego al elegir otro país, en la celda de las ciudades queda la ciudad del país anteriormente elegido. Existe alguna manera para que cuando se elige un nuevo país se borre la celda de ciudades para que quede la celda en blanco para poder elegir las nuevas ciudades?

    ResponderBorrar
  8. Hola,
    lo único que se me ocurre es usar un evento (macro) ligado a la hoja.
    Para nuestro ejemplo:
    1 - en la pestaña Hoja1 haces clic con el botón derecho del mouse y abres Ver Código
    2 - en el módulo de la hoja pones este código

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Union(Range("A5"), Target).Address = Range("A5").Address Then
    Range("B5").ClearContents
    End If
    End Sub

    Lo que hace este evento es que cada vez que hay un cambio en el valor de A5 (el país) el contenido de la celda B5 es borrado.

    ResponderBorrar
  9. Gracias Jorge!!! eres un genio!!

    ResponderBorrar
  10. Excelente la página, me has ayudado un montón...te pasaste

    ResponderBorrar
  11. Hola no se si se pueda hacer lo siguiente. Tengo una lista de proveedores en un combobox (aprox 200) cada proveedor tiene aprox 50 ranchos y cada rancho tiene aprox 20 parcelas. quisiera que al momento de seleccionar el proveedor en otro combobox me ponga los ranchos del proveedor seleccionado y al momento de seleccionar un rancho me ponga las parcelas del rancho seleccionado. se puede lograr???? gracias

    ResponderBorrar
  12. Dado la cantidad de datos, habría que hacerlo con Vba. Las combo boxes tendrían que llenarse en forma dinámica al seleccionar el proveedor.
    Con la técnica descrita en la nota no se puede debido a la cantidad de combinaciones posibles.

    ResponderBorrar
  13. Querría añadir a una hoja de cálculo una opción de reinicio, es decir que presionando un botón se borren los datos introducidos con anterioridad y que en las listas deplegables aparezca la primera opción.
    Con el borrado de celdas no tengo problema, pero no se como puedo hacer que las listas desplegablas cambien. Tampoco se si es posible lo que estoy intentando.
    Gracias de antemano por atender mi consulta, espero que me pueda ayudar.

    PD: Si esta dida ya está resulta diganme donde, pues no la he encontrado.

    PPD: Esta pagina está curradisima y es de muchisima utilidad. Todo el trabajo que lleva ha debido ser inmenso y creo que agradecer este aporte es lo mínimo que puedo hacer

    ResponderBorrar
  14. Quiero poner un botón de reinicio en una hoja de excel, es decir, cunado se presione dicho botón los datos introducidos con anterioridad deben borrarse y las listas desplegables situarse en el primer valor de las misma. Para borrar los datos no he tenido problema, el asunto es que no se si se puede recolocar una lista desplegable ni como hacerlo si se puede.
    Muchas gracias por tu atención y por tu estupenda página.

    ResponderBorrar
  15. Hola,

    explícame un poco más que quieres decir con "no se como puedo hacer que las listas desplegablas cambien".
    Gracias por los elogios.

    ResponderBorrar
  16. Veamos, a ver si me explico. En mi hoja de cálculo hay varias listas desplegables, lo que quiero hacer es que cuando se "reinicie" el programa en estas listas aparezca la primera de las opciones.

    Por ejemplo, en una de ellas aparecen las opciones: "Codo", "Codo redondeado", "T", "Otro" y una primera opción en blanco. Lo que quiero hacer es que cuando el usuario presione el botón Reinicio el valor de esta celda sea el valor en blanco.

    Espero haberme explicado correctamente, gracias por tu tiempo y atención.

    PD:Disculpame por haber escrito dos mensaje iguales, pero es que no me di cuenta de que tenías que verla pregunta antes de publicarla, cosa que me parece correcta, y al no ver mi mensaje en el blog pensé que me había equivocado.

    ResponderBorrar
  17. SI es que he entendido tu pregunta, se puede hacer fácilmente. En nuestro ejemplo, basta con poner esta macro en un módulo de VBe y ligarla a un botón

    Sub reinicio()

    Range("A5:B5").ClearContents

    End Sub

    ResponderBorrar
  18. Muchas gracias, lo he probado y a funcionado a la perfección.

    ResponderBorrar
  19. Hola a Jorge. Primeramente felicitarte por el blog, me parece estupendo.

    Quisiera saber si puedes ayudarme con el siguiente problema. Necesito que excel me devuelva en una celda un valor establecido obedeciendo a dos criterios de selección, el problema lo tengo al crear la formula de condicionantes, es demasiado larga. Me explico mejor.

    Tengo por una parte una lista con todas las provincias de españa en la columna A, por otra tipos de transporte en la columna B (3 ejes, trailer, agencia...) y en las columnas C, D... tengo el coste de transporte para cada tipo de transporte y provincia, os pongo un ejemplo:

    A B C D

    1 Prov. / Transp./ 3EJES/ TRAILER

    2 Alaba / 3 EJES / 25 / 30

    3 Albacete/TRAILER/ 15 / 20

    4 ....

    Mi intención es hacer dos listas desplegables, una con las provincias y otra con el tipo de transporte, además del nº de viajes a realizar, de manera que cuando seleccione "Albacete/trailer" me devuelva el valor establecido (20 en el ejemplo) para luego multiplicarlo en otra celda por el nº de viajes a realizar y más adelante sumarlo al precio de coste de los materiales a enviar.
    He estado probando en base al ejemplo tuyo de los países pero me hago un lío a la hora del planteamiento.
    Gracias de antemano.

    ResponderBorrar
  20. Jorge, caí en tu blog por casualidad y la verdad que los ejemplos son clarísimos y de mucha ayuda. Estuve buscando bastante y necesitaria saber como resolver esta cuestion que se me presenta y te paso a detallar:
    Estoy armando una planilla para sacar la composicion de costos de un producto. Tengo diferentes conceptos en una tabla bajo el nombre "conceptos" (madera, adhesivos, etc.)
    Elegido el concepto por lista desplegable, mediante la funcion INDIRECTO (sacado de tu blog) asocio otra lista desplegable de items (ejemplo, para madera: Madera de 1x2; Madera de 1x3, etc.).
    El tema es que yo ahora necesitaria que segun el item, se me asociaran 2 celdas mas: Unidad de Medida y Costo.
    Tanto los datos del item, como unidad de medida y costo, las tengo en otra tabla definida bajo "madgen" para el concepto Madera por ejemplo.
    Mi idea es variar tanto conceptos como item segun el producto en cuestion, motivo por el cual no puedo usar la funcion BUSCARV, mejor dicho, podria usar la funcion BUSCARV en tanto supiese como ingresar un condicional para la matriz de busqueda, segun el concepto del item.

    No sé si estoy siendo muy claro. Cualquier cosa, te dejo mi mail ya que tengo el archivo de prueba o bien para que me contactes. (matiaschiara@gmail.com)

    Desde ya, te agradezco el tiempo que te tomas en todas las explicaciones, tanto del blog, como personales.

    Saludos

    Matias

    ResponderBorrar
  21. Salva y Matías

    envíenme una copia del archivo para que me pueda hacer una idea más clara del planteo
    Por favor, usen el mail jorgedun@gmail.com

    ResponderBorrar
  22. Estimado Jorge,
    Excelente tu blog, de gran utilidad para miles de personas. Respecto al ejemplo de paises y ciudades, diste una solucion, para que cuando se cambia el nombre del pais, se ponga blanco en el campo de ciudad. El codigo funciona perfecto.

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Union(Range("A5"), Target).Address = Range("A5").Address Then
    Range("B5").ClearContents
    End If
    End Sub

    Mi duda es como puedo ocupar el objeto, para que me limpie dinamicamente de acuerdo a la posicion en la que me encuentro, porque el codigo indicado solo funciona para una celda en particular.

    ResponderBorrar
  23. Hola Marcelo
    lo que hace el código es borrar el contenido de la celda dependiente de A5. Si quieres que limpie otra celda sólo tienes que cambiar el parámetro correspondiente.

    ResponderBorrar
  24. No se si apareció mi comentario, pero no lo veo.

    Quiero poder copiar las fórmulas pero sin tener que actualizar una por una la fórmula.

    Ahora mismo en el ejemplo copiandolo, aunque yo elija Bolovia me siguen apareciendo las ciudades españolas.

    ¿Como puedo hacer para actualizar toda la columna automaticamente?

    ResponderBorrar
  25. Lo que tienes que hacer es utilizar rangos dinámicos en la definición de los nombres (y no rangos estáticos como he usado en la nota).
    En mi nota sobre Manejo de pequeñas bases de datos en Excel – Referencias dinámicas con nombres hay una explicación sobre rangos dinámicos.

    ResponderBorrar
  26. Hola Jorge,

    En primer lugar felicitarlo por el blog, lo conocí casualmente pero me ha ayudado demasiado, en segundo lugar, a ver si me sigues ayudando..

    En cuanto a las listas desplegables dependientes, si bien trabajan en base a la funcion INDIRECTO, quisiera
    saber como poder llevarlas a un macro, pues una vez trato de ejecutarlo, si bien me crea la primer validación, una vez va a realizar la segunda (la dependiente), genera un error (1004).
    Un Dato, la funcion INDIRECTO sería algo como asi:
    ActiveCell.FormulaR1C1 = "=INDIRECT(RC[-1])"
    sin embargo no se como incluirla en la validacion, gravando una macro quedaría algo como asi:
    Formula1:="=INDIRECTO($M$2)"

    ResponderBorrar
  27. Hola,

    si estás trabajando com macros me parece más apropiado usar cuadros combinados o cuadros de lista. La ventaja de usar validación de datos es que nos exime de escribir código de Vb.

    ResponderBorrar
  28. Jorge:

    Excelente tu ayuda, muy didactica y facil de entender.

    Necesito me ayudes con el siguiente problema. He hecho todo lo que aparece en este tutorial, pero necesito "ir más alla". Siguiendo con tu ejemplo, lo que yo necesito es que, luego de elegir PAIS, y CUIDAD, me aparesca(automaticamente) en una TERCERA columna por ejemplo: LA POBLACION de esa ciudad, que tengo en otra columna de datos.
    Entonces el flujo seria: Elijo PAIS, luego elijo la CIUDAD y finalmente que aparesca 100.000.

    Espero hayas entendido y me puedas ayudar.

    pd: intente usando un código que enseñaste en otro tutorial sobre el BUSCARV, pero no pude adaptarlo.

    Atte, Jaime Abett de la Torre.

    ResponderBorrar
  29. Efectivamente, con BUSCARV. Tienes que tener una lista de ciudades con sus poblaciones de donde BUSCARV traer[ia el resultado buscado.

    ResponderBorrar
  30. Hola Jorge. Tengo una duda que aun no puedo resolverla.

    Quiero hacer una lista desplegable que dependa de otra lista tal y como en el caso del ejemplo. Pero que además me vincule un número de referencia en otra celda.

    Por ejemplo: Cuando selecciono un pais de la primera lista desplegable se me cambia automaticamente la lista de ciudades en la otra lista (tal cual el ejemplo) y que al seleccionar una ciudad me aparezca un número en otra celda con el cual yo después pueda trabajar para darle aplicaciones.

    Espero se entienda mi pregunta.

    Saludos a todos

    ResponderBorrar
  31. Hola
    no estoy seguro de haber entendido, pero para que una celda aparezca un número al selccionar una ciudad, tienes que poner en la celda una fórmula que de ese resultado.
    Por ejemplo, si quieres que cuando se seleccione Barcelona aparezca el número 1, con Madrid el 2 y con Sevilla el 3, puedes usar BUSCARV con una tabla auxiliar que conecte los números a las ciudades.

    ResponderBorrar
  32. Hola Jorge!..

    Ante todo muchisimas gracias por tu blog, tiene información que me ha salvado mas de una vez de pasar rabietas...

    He intentado realizar el ejercicio que indicas anteriormente, pero cada vez que ingreso los datos me aparece el error: #¡Valor! ... me puedes explicar a que se debe esto.. gracias por tu respuesta..

    saludos,

    ResponderBorrar
  33. Lo mejor sería que me mandes el archivo ára que pueda fijarme donde está el problema.

    ResponderBorrar
  34. Hola Jorge, mil gracias por este maravilloso Blogger, amigo mi pregunta es la siguiente: Tengo una lista desplegable con nombres, es decir, el usuario solo tiene que seleccionar alguna de las opciones que aparece en la lista, y listo...pero en un determinado momento el usuario no encuentra el nombre en la lista y el lo quiere ingresar manualmente, excel le arroja un valor que debe ingresar solo los datos de la lista... hay alguna forma de solventar esta situacion??? gracias!!!

    ResponderBorrar
  35. Hola
    toda la idea de la validación de datos es que sólo se pueden ingresar valores que figuren en la lista (esto es, "validados").
    Para que un valor sea aceptado, debe ser previamente incluido en la lista de validación.

    ResponderBorrar
  36. Hola, muy buena la explicaciòn me ayudo un monton, pero tengo un problemo, que hice lo de la lista dependiente de otra en la oficina en una compu con windoews, pero la mayoria de la compus tienen linux, y cuando abri el documento en la linux , con el openoffice, la segunda lista no funcionaba, tenes idea de como hacerlo???
    el problema es que en la segunda lista si le pongo la funcion INDIRECTO en la opcion de LISTA, me lo toma como una opción de la lista, o sea me aparece en la lista desplegable solo la palabra "indirecto(A1)", y no se remite a los rangos.
    Desde ya muchas Gracias.

    ResponderBorrar
  37. Hola
    no estoy familiarizado con el OpenOffice. Te sugiero que busques en los foros específicos.

    ResponderBorrar
  38. Hola Jorge..

    antes de nada muchas gracias por tu blog. Sencillamente genial. Tengo una cuestión al respecto y te agradecería mucho si pudieras echarme un cable. a la hora de realizar este ejemplo y poner los rangos para las entradas de definición de nombres por ejemplo no me permite hacerlo dándome el fallo de "VALOR" por lo que no puedo hacer el resto. Por otro lado mi intención es que al cambiar el valor de una celda en una lista desplegable me aparezca su valor asociado en otra de manera automática y sin tener que elegirlo. Un saludo y muchas gracias

    ResponderBorrar
  39. Hola
    #VALOR puede deberse a varios motivos, por ejemplo, que existe una celda con error dentro del rango. Puedes mandarme el archivo para que me fije donde pueda estar el problema.

    ResponderBorrar
  40. Solucionado.Muchas gracias por todo. :-) (#Valor)

    ResponderBorrar
  41. Hola que tal Jorge. Pues felicidades por este tu blog porque es de utilidad para muchas personas con dudas....
    Ojala que me pudieras ayudar con mi duda.
    Tengo un conjunto de Listas desplegables en una columna, todas las listas tienen los mismos datos que se obtienen de otra hoja (esto lo hago con Validacion), pero lo que quiero es que si yo selecciono las celdas A1, A2 y A3 con los valores de las listas desplegables y me ubico en la hoja2 los valores que seleccione aparezcan en otra lista desplegable,
    Estoy usando Macros y si obtengo los valores de las listas el problema es que cuando intento agregarla a la otra lista no se agregan correctamente....
    Espero me haya explicado.... Gracias por tu atenciópn

    ResponderBorrar
  42. Hola Isay
    si he entendido, quieres crear una lista de validación de datos basada en los valores de algunas celdas que a su vez contienen validación de datos.
    Si es así la solución es sencilla. Digamos que en la celda A1 tienes una lista de validación de datos con los nombres Pedro, Jose, Rubén. En la celda A2 otra lista de validación de datos con María, Laura, Cristina.
    Ahora creas un nombre que contiene el rango A1:A2. Este nombre lo usas como referencia en validación de datos para la celda donde quieres aplicar los resultados de A1 y A2.
    Por supuesto, conviene definir los rangos de los nombres como rango dinámico, de manera que al agregar nombres o celdas, estos se actualicen automáticamente.

    ResponderBorrar
  43. Hola Jorge,
    Gracias por la ayuda que ofreces. Se agradece mucho, de verdad.
    Tengo un problema y te agradecería me ayudaras.
    Al realizar la primera lista desplegable con el método de validación, no tengo ningún problema. No obstante, al realizar la segunda lista de validación, me da un error en la casillla de origen.
    He leido que alguien tenía el mismo problema que yo pero no he entendido bien la solución que das. no sé si es por el volumen de datos que tengo, porque debería utilizar una macro (espero no sea así porque no tengo ni idea cómo funcionan)...
    Te agardecería mucho tu ayuda,
    Un saludo,

    ResponderBorrar
  44. Ainhoa

    lo mejor será que me mendes el archivo para quepuede ver que tipo de error es el que recibes.

    ResponderBorrar
  45. Hola Jorge, encontre este espacio y quisiera saber si me puedes ayudar ya que he creado un formulario en Excel que tiene Codigo, Cliente y Cantidad pero deseo que me almacene por Ejemplo Codigo en columna A, Cliente en la Columna B y Cantidad en la Columna C; e ingresar los datos fila por fila, espero me entiendas y poder contar con tu ayuda

    ResponderBorrar
  46. Hola

    ponte en contacto conmigo via mail (jorgedun@gmail.com)

    ResponderBorrar
  47. Hola Jorge:
    Saludos desde España.
    Tengo creada una columna con datos de los nombres de Divisas. En realidad esta lista proviene de otro libro por lo que tengo una fórmula con la función SI para decirle que si en el libro original no hay datos que ponga "".
    El problema radica en que cuando hago Control+Shift+Asterisco para crear un rango (dentro de una macro) Excel me crea la lista con las celdas en blanco que hay debajo cuando no encuentra datos en la original.
    ¿Cómo se puede evitar este tema?
    Espero haber sido claro.
    Un saludo,
    Sergio

    ResponderBorrar
  48. Hola y felicitaciones por el campeonato!

    El problema no está en la macro, si no en el hecho que las celdas no están vacías, ya que contienen el enlace a las celdas del otro libro.
    En general, en las macros conviene usar variables y parámetros para determinar o seleccionar rangos y no replpicar los átajos de teclado.

    ResponderBorrar
  49. Hola Jorge:
    Gracias por contestar tan rápido. En realidad soy argentino, aunque vivo en España hace 30 años, por lo que me puse contento con la Eurocopa.
    El problema que tengo es que ese nombre de rango lo uso en una Validación con lista.
    ¿Qué sucede? Cuando voy a elegir una moneda determinada (o lo que fuera en otro caso) me sale una lista con todos los blancos hasta donde tengo desarrollada la fórmula ya que cuando hice Control+Shift+Asterisco entró todo.
    No sé cómo resolverlo de un modo fácil y sin programación VBA.
    Si lo tuviera que emplear para otro tema (por ejemplo para una tabla dinámica) no me afectaría haber previsto un rango más grande.
    Pero para una validación me está afectando bastante.
    Gracias por tu atención y un saludo,
    Sergio

    ResponderBorrar
  50. Hola Sergio
    para que no aparezcan los blancos en la lista tenés que usar la función CONTAR.BLANCO en la fórmula que definie el rango dinámico, como muestro en este ejemplo.

    ResponderBorrar
  51. Hola Jorge:

    Quisiera consultarle si el ejemplo dado de las celdas con listas desplegables dependientes se puede usar con cuadros de controles o de formulario, como cuadros de listas o cuadros combinados y cómo habría que hacerlo. Es más cómo se haría en VBA creadno un UserForm para ello.
    Gracias

    ResponderBorrar
  52. Tal como dices, programando el userform, o cualquier otro control que elijas, con Vba.
    El método mostrado en la nota se apoya en la funcionalidad de alidación de datos y nos sirve justamente para no tener que usar Vba.

    ResponderBorrar
  53. Hola Jorge:
    Probé la fórmula en la definición del nombre de rango con la función DESREF combinado con CONTARA y CONTAR.BLANCO, tal como viene en tu ejemplo con el nombre de rango LISTA y me funcionó perfectamente.
    Muchas gracias por la ayuda. Me estudiaré el resto de la hoja de ejemplo porque también parece muy interesante.
    En fin, hay que seguir estudiando Excel que nunca se acaba.
    De nuevo gracias,
    Sergio

    ResponderBorrar
  54. hola Jorge
    he estado buscando soluciones en excel y por lo que veo tu eres el mejor, espero me respondas mi duda, utilizo una lista desplegable mediante validacion en la hoja1 y los datos para esa lista estan en la hoja2, cuando abro la ventanita para indicarle la lista quiero que esta en la hoja2, no me permite abrir la hoja2, como le hago? o es que tiene que estar la lista en la mis ma hoja?

    ResponderBorrar
  55. Si el rango que sirve de base a la lista está en otra hoja, tienes que definir ese rango en un nombre, como está explicado en esta nota.

    ResponderBorrar
  56. Gracias Jorge
    tienes toda la razon, puse el nombre del rango y todo funciona correcto, excelente blog y gracias por contestarme tan rapido felicidades por tu pagina.

    ResponderBorrar
  57. Hola Jorge
    Quisiera me ayudaras con un tema:
    Estoy en Excel 2007
    y estoy tratando de realizar el ejemplo que tu describes al inicio.
    y no me resulta, de hecho varias cosas que hacia antes con listas ahora las puedo hacer a medias...
    espero me puedas ayudar con esto en Excel 2007. Gracias
    Nota:
    !!Muy buenos Trabajos, Gracias!!

    ResponderBorrar
  58. Hola Max

    por ahora no trato problemas relacionados con XL2007.
    Más adelante, empezaré a ratar temas relacionados con XL2007

    ResponderBorrar
  59. hola Jorge
    excelente pagina, nos has ayudado a muchos que nos manejamos en excel, gracias, bueno ahora ojala puedas ayudarme con esto: ¿hay alguna forma de que al momento en que se descargue un libro de excel de un correo, este se ejecute automaticamente? es decir quiero mandarle por correo una hoja de calculo mio a un amigo (que no tiene conocimiento de excel).
    gracias de antemano

    ResponderBorrar
  60. Si te refieres a que pase algo inmediatamente después de abrir el cuaderno, tienes que incluir un evento (macro) como esta explicado en esta nota.

    ResponderBorrar
  61. hola Jorge muy bueno tu blog, te felicito.
    ojala me ayudes con esto, yo recibo muchos archivos de texto y tengo que generar un reporte en excel con los datos de estos archivos, pero estos datos vienen todos juntos en una sola columna y manualmente tengo que separar los datos con la ayuda se excel, habrá alguna macro que automaticamente me separe los datos en columnas?
    gracias.

    ResponderBorrar
  62. Se puede solucionar con macros. Ponte en contacto conmigo por mail.

    ResponderBorrar
  63. Hola Jorge, mi nombre es Paolo de Chile y tengo el problema que necesito leer los valores de una encuesta que esta hecha en excel, pero lo unico malo es que necesito leerla desde visual basic, ya hice una aplicacion pero cuando leo el valor de la celda donde esta la lista me devuelve vacío. excel_sheet.Cells(6, 2)
    Còmo puedo leer esos campos que son optionbox, listbox , ettc

    Muchas Gracias de antemano

    ResponderBorrar
  64. Hola Paolo

    ese tipo de consulta tienes que mandarla a mi mail (aparece en la columna izquierda del blog, arriba)

    ResponderBorrar
  65. Hola, he tomado tu ejemplo y me ha servido mucho. Encuentro muy interesantes los comentarios para borrar los datos que no corresponden a la celda dependiente y quisiera aplicarlo para un ejemplo donde la validación no se aplica para un solo dato sino para la alimentación de una base de datos (hacia abajo en dos columnas) así:

    pais: argentina / ciudad: se llena con la lista desplegable

    pais: bolivia / ciudad: se llena con la lista desplegable


    etc...

    mi correo es dgomex@gmail.com

    ResponderBorrar
  66. Hola

    Ponte en contacto conmigo por mail.

    ResponderBorrar
  67. Hola Jorge, mi nombre es Javier.
    Antes que nada felicitarle por el magnifico blog.
    Tengo un taller de estructuras metálicas y no encuentro ningún producto en el mercado que se acople a mi manera de realizar presupuesto.
    He decidido crearme unas hojas de cálculo justo a mis necesidades.
    La idea es tener una hoja con todos los artículos que yo utilizo en el taller. Estoy dudando si hacerlo en un archivo a parte ya que lo iré enriqueciendo de información con el paso del tiempo, bueno no se como haré esto.

    Mi duda es la siguiente:
    En la hoja donde tengo los artículos quiero introducir uno detrás de otro y a cada tipo asignarle una familia. Es decir que los artículos que san tubos cuadrados poner una casilla inicial donde ponga TC que será la familia a la que pertenece y así uno detrás de otro.
    La finalidad es que cuando este en la Hoja del presupuesto para poder encontrar mejor los artículos poner una casilla que sea familia y en la siguiente que solo salgan las artículos que pertenezcan a esa familia.

    He estado aplicando el ejemplo de los países y haciendo pruebas, y no me funciona. Creo que el motivo es debido a que yo defino a que familia pertenece cada articulo en una columna, no como los países que están en una fila y debajo las ciudades.

    Espero haber expresado bien el problema.

    Muchísimas gracias por su atención

    ResponderBorrar
  68. Hola, estoy tratando de montar un formato de la siguiente manera:
    Cuando se le digite en una celda determinada "general" me despliegue una lista y cuando se le digite "especifico" me despliegue otra lista. Nose como enlazar las dos listas desplegables bajo los parametros ya dichos.
    Me ayudas por favor.
    Gracias.

    ResponderBorrar
  69. Hola

    tal como está explicado en la nota. También puedes fijarte en esta otra entrada.

    ResponderBorrar
  70. Hola, soy de Mexico y de casualidad cai en este blog muy claro e interesante, podrias ayudarme? quiero una lista desplegable en una celda pero cuando intento hacer referencia a una lista creada en otra hoja me da un error de que no se puede, uso escel 2003, ojala y puedas ayudarme gracias y nuevamente felicidades, haces una gran aportacion a la red

    ResponderBorrar
  71. Para crear listas con validación de datos basándote en rangos de otras hojas, tienes que usar nombres, como explico en esta nota.

    ResponderBorrar
  72. Muy buenas Jorge.
    Esta pagina es increible, antes de conocerla solo sabia hacer sumas en excel y ahora ya se hacer sumas y hacer estas maravillosas listas desplegables dependientes.;)
    Bueno al grano, mi problema es el siguiente. tengo 3 listas desplegables . en una tengo marcas (de vehiculos), luego modelos y en la siguiente piezas.El problema lo tengo con las piezas. Tengo creado una columna donde pongo todas las piezas seguidas, las piezas estan separadas con el nombre del modelo. Pero existen modelos de automoviles que son un numero (por ejemplo el 147 o 156 de alfa romeo) y la hora de definir el nombre de las piezas (por ejemplo para las piezas del 147) me da un error, me dice que es un nombre no valido.Existe alguna manera de nombrar esa columna de piezas sin tener que poner "cientocuarentaysiete"
    Un saludo y gracias por tu atencion y tu desinteresada ayuda.

    koldo

    ResponderBorrar
  73. Koldo

    los nombres no pueden comenzar con un número (y también deben cumplir otras reglas como no ser similar a una referencia, por ejemplo, A1).
    La solución en tu caso es poner un _ (guión inferior) al principio (por ejemplo _147)

    ResponderBorrar
  74. Hola Jorge! FElicitaciones por la página, es excelente. Tus explicaciones son claras y precisas!
    Mi pregunta es la siguiente: Tengo un archivo similar al tuyo con listas dependientes (ciudades y paises). Las he vinculado y no hay problema. DEbido al tamaño de datos quiero trabajar con rangos dinamicos. Al definir como rango dinamico a los datos de paises no hay problema(estos se agregan automaticamente).Pero cuando definimos como dinamicos a los datos de ciudades ocurre que los datos no se despliegan de la lista. Me explico? Es decir que excel me permite definir como rango dinamico a los datos de paises y no de ciudades debido a crear una lista dependiente. Alguna idea para poder solucionar esto? Desde ya muchas gracias
    saludos
    Juan

    ResponderBorrar
  75. Hola Juan

    puedes mandarme el archivo para que vea donde pueda estar el problema.

    ResponderBorrar
  76. Estimado,

    es increíble la ayuda que me ha brindado tu Blog, y te agradezco de antemano por querer transmitir tus conocimientos en esta aula virtual.

    Pero ya verás que tengo un dilema que no puedo resolver. Quizás es una sencillez, pero no logro solucionarlo.

    Logré hacer la validación de datos condicionada a otra, pero necesito extender esta opción a las celdas de una columna, osea, que la columna B arroje las opciones de validación de acuerdo al valor ingresado en la columna A. Esto a lo largo de 500 celdas de una columna.

    Cómo se puede hacer? ya que al extender las celdas con el ratón e incluso con Ctrl no se modifica la fórmula de la validación. Existe una forma de aplicar un contador a la fórmula o algo similar?

    Espero atento tu respuesta y de antemano muchas gracias.

    Mi mail es rbalbontin@gmail.com

    Saludos!

    ResponderBorrar
  77. Estimado,

    es increíble la ayuda que me ha brindado tu Blog, y te agradezco de antemano por querer transmitir tus conocimientos en esta aula virtual.

    Pero ya verás que tengo un dilema que no puedo resolver. Quizás es una sencillez, pero no logro solucionarlo.

    Logré hacer la validación de datos condicionada a otra, pero necesito extender esta opción a las celdas de una columna, osea, que la columna B arroje las opciones de validación de acuerdo al valor ingresado en la columna A. Esto a lo largo de 500 celdas de una columna.

    Cómo se puede hacer? ya que al extender las celdas con el ratón e incluso con Ctrl no se modifica la fórmula de la validación. Existe una forma de aplicar un contador a la fórmula o algo similar?

    Espero atento tu respuesta y de antemano muchas gracias.

    Mi mail es rbalbontin@gmail.com

    Saludos!

    ResponderBorrar
  78. Al copiar un rango a otro las fórmula de validación de datos se comportan como las fórmulas en las celdas. Es decir, si la fórmula en validación de datos en la columna B es B1<$A$1 (los valores en la columna B tiene que ser menores que el valor de la celda A1), al copiar un rango de B a C, la fórmula en validación de datos cambiará a C1<$A$1.
    Pero si la fórmula es B1<A1, al copiar se transformará en C1<B1.
    Espero haber entendido tu consulta.

    ResponderBorrar
  79. Muchas gracias, pero hay algo que estoy haciendo entonces que no permite que la validación de datos sea dinámica.

    Mira esto es lo que estoy haciendo:

    - defino nombre paises y lo aplico atraves de validación a una celda (A1).

    - defino nombre de cada pais con sus respectivas ciudades y lo aplico através de validación de datos a la celda contigua (B1) a la validada con países utilizando la función INDIRECTO y la celda anterior (=INDIRECTO($A$1)).

    - extiendo la celda paises hacia abajo por la misma columna (A).

    - extiendo la celda ciudades hacia abajo por la misma columna (B).

    El problema radica en que la columna B aún extendidas las celdas,sigue respondiendo al valor ingresado en la celda A1 y no al valor correspondiente de la celda anterior de cada fila, oséa, quiero que B1 responda al valor de A1, B2 responda a A2, B3 a A3 y así sucesivamente.

    Esto es lo que no se me modifica al extender las celdas y al verificar la fórmula de validación me he percatado de que no cambia.

    ¿Que puedo hacer?

    Saludos.
    RB

    ResponderBorrar
  80. Rodrigo
    fiajte que estás usando referencias absolutas en INDIRECTO($A$1) cuando tendrías que estar usando referencias relativas: INDIRECTO(A1), sin los signos $

    ResponderBorrar
  81. Estimado,

    estaré eternamente agradecido...
    muchas gracias...

    RBT

    ResponderBorrar
  82. Apreciable Jorge, ¿estas listas desplegables se podrían usar con la herramienta FORMULADIO del menú DATOS (Office 2003)?
    Es decir ya que tengo creadas las listas dependientes, quisiera seleccionar el rango de captura de datos y en lugar de capturar directamente sobre la hoja de calculo hacerlo mediante un Formulario del Menú Datos, ya hiuce la prueba al crear mis listas, luego seleccioné el rango en que quiero capturar los datos (inlcuyendo los encabezados Paises y Ciudades) pero me da la opción de escribir más no me aparece la lista desplegable en cada concepto(paises o ciudades), ¿crees que se podría lograr?
    De antemano gracias por tu apoyo,
    Saludos
    Alexx
    Los Mochis, Sinaloa, México

    ResponderBorrar
  83. Hola Alex

    para ser sincero no le encuentro grandes ventajas al formulario. ¿Por qué no usás la herramienta Listas? Tiene varias ventajas y además te permite usar listas desplegables de validación de datos.

    ResponderBorrar
  84. Hola,
    Mi pregunta es de la más tonta, pero es que llevo intentandolo un monton y no hay forma.

    Mi problema es que el combo este lo tengo que copiar en un montón de celdas. Es decir, la celda A1/B1tendrán dos combos (donde puede ir argentina/ciudad), ahora quiero copiar ese formato a las celdas A2/B2, de tal forma que pueda elegir en la A2 un pais diferente y por consiguiente en B2 haya otra ciduad distinta.

    El problema es que al copiar las celdas que llevan la función INDIRECTO, me copia la dependencia con la celda A1, y no consigo encontrar una forma rápida de copiar sin tener que entrar en validación de nuevo y cambiar a que dependa de la A2. tengo que copiar estos combos en unas mil celdas, please, dime que hay una forma de hacerlo facilmente y que no tengo que editar la validación en cada una.

    Muchísimas gracias

    ResponderBorrar
  85. ¿Estás usando referencias relativas (sin los signos $)?

    ResponderBorrar
  86. Hola,
    Ante todo enhorabuena, me has facilitado mucho la vida con este blog. Ahora me surge la siguiente duda. Tengo una lista de validación, que cuando la despliego muestra 8 elementos de la lista, me gustaría saber si hay alguna manera de ampliar el número de elementos a mostrar, entre 10 y 20.
    Muchas gracias por anticipado

    ResponderBorrar
  87. Jorge exelente el blog. Te queria hacer una consulta. tengo un listado de titulos, peso, codigo y costo separados en columnas, gracias a tu blo logre hacer un desplegable con los titulos pero quiero que seleccionando uno de la lista desplegable me coloque en las celdas de las columnas contiguas el peso, codigo y costo. Como puedo hacerlo?.
    Gracias
    Javier

    ResponderBorrar
  88. Usando el valor de la celda con la lista desplegable en una función BUSCARV, o alguna otra función de búsqueda (como INDICE)

    ResponderBorrar
  89. hola, justamente lo visto en este espacio es lo que quiero hacer, pero lo que no puedo es hacer la parte de abajo dond eesta lo de definiciòn de nombres, no se como crear esos grupos condicionales o con que formulas para poder usarlos en datos condicionados, ya estoy atorado y revuelto, me pueden ayudar por favor??? has de cuenta que el paso 2. donde ya dspues de escoger un pais como logro sacar la lista desplegable de las ciudades... De verdad ojala y me puedan ayduark, gracias

    ResponderBorrar
  90. Hola Jorge.

    Es primera vez que uso un foro en internet para buscar solución a un problema de excel, te puedo agradecer y decir que en algunas dudas me he apoyado mucho en consejos a otras personas y me han servido mucho.

    Esta es la primera vez q te escribo para solicitar tu ayuda pues no puedo con el condicionamiento de una celda.

    Estoy haciendo un formato de renta de juegos, por ejemplo quiero que en la tercera columna al seleccionar de la C Y E, hay una condición para la celda F, es como lo de las ciudades de los paises del ejemplo, pero no logro dar con la formula, quiero que al seleccionar de la C si es servicio "local" o de "internet", y la E me dice cuanto tiempo en horas, La columna F me arroje el precio correspondiente.

    Espero me puedas ayudar con esta info, te lo agradecería mucho pues es para un proyecto escolar donde quiero demostrar a la maestra que se puede hacer mucho mas en excel que gráficas.

    Saludos y espero tu respuesta.

    Aloxus

    ResponderBorrar
  91. El tema de listas desplegables es uno de lo más populares en este blog, ajuzgar por la cantidad de comentarios y la de mails que recibo en forma privada.
    Estoy escribiendo una guía detallada sobre el tema que incluirá un manual (PDF), un cuaderno Excel con ejemplos y algunas animaciones. Cuando esté listo pondré un enlace en el blog pára la descarga.

    ResponderBorrar
  92. En respuesta ala consulta de Anónimo del 6 de febrero: la cantidad de líneas en el cuadro de validación de datos no se puede modificar (hasta donde yo se). Pero en su lugar puedes usar una combobox (cuadro combinado) de la barra de formularios. En la pestaña de propiedades puedes controlar el número de líneas a mostrar.
    Y disculpas por la demora en responder.

    ResponderBorrar
  93. Hola,
    Soy el anónimo de la consulta del 6 de febrero, muchas gracias por tu respuesta, me ha sido de gran ayuda.

    ResponderBorrar
  94. Este blog ha sido eliminado por un administrador de blog.

    ResponderBorrar
  95. Si quiero aplicar este mismo metodo de validación pero en filas sucesivas, como funciona? porque siempre estoy referenciando a la $a$5....pero si quiero hacerlo en las mismas columnas desde ahi hacia abajo? debo validar celda por celda, referenciando a la columna A? Gracias!

    ResponderBorrar
  96. No estoy seguro de haber entendido, pero puedes fijarte en la nota sobre listas desplegables dependendientes múltiples.

    ResponderBorrar
  97. Hola muy bueno el blog, me ha ayudado muchisimo de verdad que felicitaciones. Tengo el problema siguiente. Siguiendo el ejemplo planteado. Tengo 3 Listas desplegables.
    La primera contiene los paises.
    La segunda (que viene referenciada con el indirect tal cual ejemplo) contiene las ciudades.
    La tercera contiene productos.
    Lo que necesito es que al seleccionar el pais y la ciudad, venga referenciado tambien los productos correspondientes a ese pais y ciudad no se como colocar ese indirect. Es decir que la 3era lista deberia estar asociada tanto a la 1era como a la 2da.

    Muchas gracias
    Att: Carolina

    ResponderBorrar
  98. Carolina
    el tema de las listas desplegables es uno de los que más interés y dudas despierta en el blog.
    He decidido publicar una guía sobre el tema que podrá descargarse.

    ResponderBorrar
  99. Me fue muy util tu aporte, gracias!

    ResponderBorrar
  100. Hola Jorge.
    Quiero crear una lista desplegable con tres dependencias
    A1 = Nombre; B1 = Colores zapatos y C1 = Colores calcetines.
    Tanto en B1 y C1 pueden haber varias opciones y la lista desplegable de B1 y C1 tiene que estar referenciada a A1 = Nombre.
    En el caso que has expuesto con INDIRECTO la lista solo tiene dos dependencias y estoy dandole vueltas y no se como hacer para que refernciandose solo a A1 puedan haber más de dos dependencias. ¿Me puedes hechar una mano?
    Un saludo.
    Luis

    ResponderBorrar
  101. Hola Luis

    fijate en la técnica que muestro en esta nota.

    ResponderBorrar
  102. Perfecto.

    Muchas gracias por tu ayuda y gran disponibilidad. Tienes un blog muy útil.

    Un saludo.

    Luis.

    ResponderBorrar
  103. Jorge, muchas gracias por toda la información.
    Tengo un problema con la lista de paises. Cunado defino los nombres me sale #¡VALOR, por lo tanto no puedo ejecutar la lista.
    Como puedo corregir este problema.

    Muchas Gracias.
    Saludos.

    ResponderBorrar
  104. Hola Julio

    mandame el archivo (la dirección y las reglas a seguir están en el enlace de Contacto).

    ResponderBorrar
  105. que tal... disculpa la molestia, tengo una duda y una pregunta que hacer
    como hago para colocar dos listas desplegables en VBA, y que al seleccionar el dato de una me active valores de otra

    ResponderBorrar
  106. La respuesta a tu pregunta no puede ponerse en un comentario. Tal vez publique algo sobre el tema en el futuro.

    ResponderBorrar
  107. Estimado Jorge,

    En primer lugar, quisiera felicitarle por esta página y por ayudar desinteresadamente a quien le pregunte. Yo mismo preciso de su consejo.

    Estoy realizando un prontuario de perfiles metálicos para la construcción. Cada tipo de perfil tiene una nomenclatura concreta y a continuación una serie de características propias, p.e: Tipo de perfil "IPE", altura "270", y ya a partir de aquí una fila de varias características (peso, inercias, áreas, etc.) y por supuesto, cada tipo de perfil y dimensión tiene las suyas.

    Mi consulta es: ¿cómo puedo visualizar en otra hoja distinta una sola fila, perteneciente a un perfil concreto, tras seleccionar mediante 2 listas desplegables dependientes (tipo de perfil y altura) los datos que preciso? Es decir, en la primera lista desplegable, elijo el tipo de perfil y en la segunda la altura concreta, para lo cual quiero observar solo la fila de las características de esta selección.

    Gracias por su atención y un cordial saludo.

    ResponderBorrar
  108. Hola jorge me parece excelente tu Blog, bueno jorge tengo un pequeño problema con crear un cuadro de busqueda, estoy haciendo un inventario con datos de computadoras pero ahora necesito crear un cuadro de busqueda

    un ejemplo:

    ya tengo mi ranura de busqueda lista de tal forma que puede buscar escribiendo o desplegando la barra para buscar el dato de forma manual... pero

    ahora necesito es cuando yo escriba algum dato en mi cuadro de busqueda se muestre automatica mente en los otros espacios en blanco, me explico?

    al asi

    Serial: 00000022566

    y automaticamanete en otras ranuras salga esta informacion en mi cuadro

    Nombre: Anomimo
    TN°: tj6678
    Tag: Pg005678
    Modelo: Hp epson
    Tipo: impresora

    por favor si me entiendes seria de gran ayuda

    ResponderBorrar
  109. Jhon

    vamos por partes. Cuanda dices "ranuras", ¿te refieres a celdas? De ser así tienes que crear una fórmula con BUSCARV (o alguna otra función de bpusqueda como INDICE o COINCIDIR) para traer el resultado esperado en función del valor elegido en la lsta desplegable.

    ResponderBorrar
  110. Hectorizate

    tienes que usar una fórmula con INDICE y COINCIDIR para traer los valores que coincidan con los dos parámetros.

    ResponderBorrar
  111. que tal jorge, ojalá me puedas ayudar con esto, estoy haciendo una validación ligada con las listas dependientes y la función indirecto, todo ha funcionado bien, el problema es que cuando la celda 1 (de la cual se desprende la lista de la celda 2) está vacía, se puede escribir cualquier cosa en la celda 2, necesito que si la primera lista está vacia, despliegue una lista genérica y no permita escribir algo que no esté en la lista genérica, ya he intentado con =si(a1="",generica,indirecto(a1), pero no funciona de todas maneras, me sigue permitiendo escribir,
    qué puedo hacer?
    saludos

    ResponderBorrar
  112. Gerardo
    ¿en dónde estás poniendo la fórmula? Si la pones en la opción Lista de validación de datos, tiene que funcionar.

    ResponderBorrar
  113. Señor Dunkelman, soy un amante estudioso del excel, que cada vez me fascina más. Su blog es excelente, hace cerca de dos años que lo sigo. Molesto su recargada tarea para consultarle lo siguiente: Cómo puedo hacer en una base de datos para localizar un dato por ejemplo del campo "apellidos" ingresando sólo las primeras letras, por ejemplo, d, u, n, etc. y que me muestre los diferentes apellidos, hasta que al final pueda: o quedar uno sólo que sea realmente el que se está buscando, o derrepente de la lista que me despliega con las primeras letras que ingrese, YO pueda tener la opción de elegir uno, y que al elegirlo me muestre los demas campos de la tabla o base de datos.
    Gracias por su atención y disculpe que lo retraiga de su habitual trabajo que me imagino es bastante recargado

    ResponderBorrar
  114. SR. DUNKELMAN, gracias por su pronta atención. Quería molestar su atención, cómo hacer con la última parte de mi consulta anterior del 03/10/2009 ¿Cómo hago para pasar um obtener los demas datos de los otros campos del registro, fila?. Disculpe ud. mi insistencia pero requiero de ello, para poder tener acceso rapidamente a los datos de los usuarios de mi parroquia, cuando van a requerir de alguna constancia de bautismo, confirmación, matrimonio o cualquier otro, de los ya casi 8000 registros. Le explico, los campos son: Apell. Paterno, Apell. Materno, Nombres, Fecha de Nacimiento, Lugar de Nacimiento, Nombre del Papá, Nombre de la Mamá, Tipo de Ceremonia, Celebrante, Padrino, Madrina, Testigo1, Testigo2, Testigo3, Testigo4, Número de la Partida, Observación

    Caso contrario, agradeceré me diga en qué artículo puedo conseguir la información, así como hizo con mi consulta anterior.
    Gracias anticipadas
    Jorge

    ResponderBorrar
  115. Jorge, ponte en contacto conmigo por mail (jorgedun@gmail.com)

    ResponderBorrar
  116. Excelente blog Sr. Dunkelman. Una pregunta: de una lista desplegable existe la posibilidad de elegir dos o mas items y que sean volcados en otra celda...ej:
    lista desplegable:, 1,2,3,4,5

    La idea sería que permitiese seleccionar por ejemplo, 1, 3 y 5 y los mostrase con comas 1,3,5 en otra celda. Se puede? Gracias por su atención. Saludos

    ResponderBorrar
  117. No con listas desplegables creadas con Validación de Datos. Se puede hacer con controles y Vba.

    ResponderBorrar
  118. Gracias Jorge, muy amable. Saludos

    ResponderBorrar
  119. la lia=sta desplegable ya esta pero se ve la letra de la lista muy pequeña me podrias ayudar

    ResponderBorrar
  120. Excel no tiene un método incorporado para cambiar el tamaño de la fuente o el número de valores que aparecen en una lista desplegable creada con Validación de Datos.
    Una alternativa es usar el control ComboBox de la barra de controles ActiveX

    ResponderBorrar
  121. Apreciado Sr. Dunkelman,


    Antes que cualquier cosa FELICITACIONES por tan completo, bien explicado blog (que creo que va mas allá de ser un blog). Tengo una situacion parecida a Salva 01 de agosto de 2007, donde necesito elaborar una plantilla de costes, donde:

    1º selecciono un ingrediente con su nombre coloquial

    2º automáticamente me identifica que ingrediente es y asigna su nombre INCI (codificación internacional para ingredientes cosméticos)

    3º con base al ingrediente seleccionado me deja escoger que proveedores ofertan dicho ingrediente

    4º con base al proveedor me diga el precio por gramo de dicho ingrediente

    Creo que he logrado solucionar varios puntos (hasta el 3º mas o menos con tu blog), sin embargo, no tengo claridad a la hora de establecer un orden de datos especialmente cuando tenga que referenciar ingrediente-proveedor-precio no sé realmente cual sea la mejor opción, inclusive a la hora de establecer la matriz de datos.

    Espero me puedas ayudar, un saludo cordial.

    Angelo
    marconiangelo@gmail.com

    ResponderBorrar
  122. Angelo,
    si llegaste al ounto 3, el 4 se puede resolver con BUSCARV (tendrías que crear un campo auxiliar con la combinación ingredediente-proveedor) o con INDICE y COINCIDIR.
    Pero, dependiendo de como estén organizados los datos, una tabla dinámica podría ser una solución mucho más eficiente.

    ResponderBorrar
  123. Apreciado Jorge,

    Me surgen inquietudes/dudas en las tres potenciales soluciones.
    1- Para BUSCARV como seria eso de combinación ingrediente-proveedor.
    2- Por la que mas me inclino, pero la que menos entiendo, no se literalmente como plantearla.
    3- Una tabla dinamica podria funcionar como base de datos para alimentar las listas desplegables?

    Nuevamente gracias por tu ayuda.

    ResponderBorrar
  124. 1 - Crear un campo auxiliar combinando los campos ingrediente y proveedor con CONCATENAR (o con "&"), en ambas listas. Éste es ahora el campo de referencia.
    2 - ?????
    3 - Si

    ResponderBorrar
  125. Alvaro El Salvador28 noviembre, 2009 01:50

    Estimado Jorge,

    Le agradezco de manera muy articualr por compartir sus conocimientos con muchas personas. en esta ocasión estoy teniendo problemas ya que al hacer estas listas si dejo espacios al principo de la lista no me leé o da error a los demas valores

    1-El Salvador
    1.1-San Salvador
    1.1.1-San Salvador
    1.1.2-Soyapango
    1.1.3-Ciudad Delgado

    como puede ir viendo con la numeración descrita así quisiera que apreciera sin embargo la unica forma de que esto suceda es de la siguiente:

    1-El_Salvador
    1.1-San_Salvador
    1.1.1-San Salvador
    1.1.2-Soyapango
    1.1.3-Ciudad Delgado

    es posible que aparezca sin esos guiones bajos.
    agradezco su ayuda.
    saludos,
    Alvaro

    ResponderBorrar
  126. No se puede dejar espacios en blancos en la definición de nombres. Pero puedes usar la función SUSTITUIR como muestro en esta nota para reemplazar el espacio en blanco con un "_".

    ResponderBorrar
  127. Buenos días Jorge,

    a ver si me puedes ayudar, por favor:

    mi intención es que, teniendo una lista desplegable con dos opciones: milesimal y centesimal, al elegir, por ejemplo, "milesimal", los datos que he de introducir posteriormente en otras celdas y los resultados que obtengo mediante fórmulas, también en otras celdas de esa misma hoja, sólo tengan 3 decimales. Asimismo, en el caso de elegir "centesimal" de la lista desplegable, sólo han de tener 2 decimales los datos y resultados.

    Muchísimas gracias de antemano.

    Un saludo,

    Elena

    ResponderBorrar
  128. Elena,
    tendrías que usar una fórmula con SI y REDONDEAR de manera que la cantidad de decimales esté dada por el valor de la celda con la lista desplegable.
    Por ejemplo, si la lista desplegable está en la celda A2, la fórmula sería

    =REDONDEAR(tu fórmula,SI($A$2="centesimal",2,3))

    ResponderBorrar
  129. Hola Jorge Un bueno el post;tengo un problema y deseo por favor que me ayudes:
    Tengo un listado con mas de 4000 registros de los cuales la columna A es codigo;B nombre;C tipo .
    Bueno la cosa es que varios codigos tienen el mismo nombre ya que son de sets distintos

    Lo que quiero hacer es tener un boton en la hoja 2 del mismo documento para realizar una busqueda como la que realiza la opcion Buscar del menu edicion
    y si hay varios codigos con el mismo nombre que me los muestre en una lista

    ResponderBorrar
  130. Harold,
    comunicate conmigo por mail (por favor muchachos, lean lo que pongo en el enlace Ayuda)

    ResponderBorrar
  131. tengo un cuadro con distancias entre varios puntos y necesito hacer otro, de tal manera que cuando ingrese los datos de esos puntos aparezca de manera automatica la distancia entre los mismos

    ResponderBorrar
  132. Tu comentario no està relacionado con el tema de la nota.

    ResponderBorrar
  133. Buen Día Jorge,

    Te agradezco si me puedes ayudar,

    supongamos que tengo la lista desplegable de los países en una columna y deseo que SOLO cuando elija "Colombia" de esa lista, me salga en la celda contigua las ciudades tal y como tu lo explicaste pero que cuando elija cualquier otro país me permita escribir en esa celda contigua.

    Gracias por tu colaboración.

    Gina Mateus

    ResponderBorrar
  134. Buen Día Jorge,

    Te agradezco si me puedes colaborar.
    Siguiendo tu ejemplo, quisiera saber como se hace para que SOLO cuando seleccione "Colombia" aparezcan las ciudades en la celda contigua, pero que cuando seleccione otro País diferente me permita escribir en esa celda contigua.

    Cordialmente,

    Gina Mateus

    ResponderBorrar
  135. Gina,
    para eso el rango de los nombres de los otros países debe incluir una celda en blanco.

    ResponderBorrar
  136. Buen día. Agradezco a quien me pueda ayudar con lo siguiente: tengo un listado con diferentes codigos (A12, B35, A20, A50, C87, B41) esos códigos son únicos; necesito una formula que me cuente las filas de ese listado que contienen un caracter especial, por ejemplo la letra A. Yo se como contar palabras o frases completas, por ejemplo las celdas que contengan la palabra "ROSA" pero en este caso necesito solamente contar todas las celdas que contengan la Letra A. Alguien sabe como hacerlo? Muchas gracias desde ya.

    ResponderBorrar
  137. Hola Juan,
    como pongo en la nota sobre Ayuda, tendrías que dirigir tu consulta a un foro (esto es un blog). Además la consulta no está relacionada con el tema de la nota.
    De todas maneras, una solución posible es usar esta fórmula matricial

    ={SUMA(--ESNUMERO(ENCONTRAR("A",A1:A4)))}

    donde las celdas a evaluar están en el rango A1:A4

    Hay que prestar atención a los dos signo "--" que preceden la función ESNUMERO.
    Te recuerdo que las fórmulas matriciales hay que introducirlas apretando simultáneamente Ctrl+Mayúsculas+Enter

    ResponderBorrar
  138. hola, felicitaciones por tu blog. Tengo una duda, estoy utilizando esta leccion para un registro de productos y la categoría en la que se encuentran.
    Planeo dejar esto para que siempre se pueda utilizar y actualizar, entonces, como hago si aparece una nueva categoría o un nuevo producto??? existe una forma de modificar o añadir nuevos elementos a la lista deplegable. Ojalá me puedas ayudar. Gracias.- wILLY

    ResponderBorrar
  139. Supongo que las categorías son los encabezamientos de las columnas y los productos los valores de cada columna. Para que las listas de los porductos de cada categoría sean dinámicas podés aplicar nombres para crear rangos dinámicos o listas/tablas.
    También podés fijarte en este ejemplo

    ResponderBorrar
  140. Hola esta muy interesante este sitio he aprendido mucho.

    talvez me puedes ayudar, por favor:
    Tengo una lista desplegable en excel, el problema es que no puedo vincularla, para que cuando seleccione la opcion esta me lleva a otra hoja donde esta esa informacion.

    ResponderBorrar
  141. Para que eso suceda tienes que programar un evento (macros). Si no estás familiarizado con el tema puedes hacer una búsqueda en el blog con la palabra "eventos".

    ResponderBorrar
  142. Hola

    He seguido paso a paso el ejemplo de listas desplegables dependientes y me funciona bien para una fila pero ¿Cómo puedo hacer para que en la segunda columna (la de ciudades) el desplegable funcione correctamente para un conjunto de filas sin tener que ir definiendo la validación celda a celda?

    Gracias. Espero qu eno lo hayas comentado ya y no me haya dado cuenta.

    ResponderBorrar
  143. Si te refieres a que la regla de validación se extienda a cada una de las celdas de la columna sin necesidad de definir la regla para cada una, tu mejor opción es usar tablas (o listas en Excel 2007).
    También te recomiendo ver la serie de notas apretando el enlace de la etiquete Listas Desplegables.

    ResponderBorrar
  144. Muchas gracias por el consejo del uso de tablas.
    Tengo que mirarlo con detenimiento. De momento he solucionado mi problema con un Copiado/Pegado especial.

    Tengo otro problema que me trae de cabeza,y que me ha surgido al utilizar DESREF siguiendo tus consejos para que la lista despelgable sea dinámica.

    Tengo una excel con dos Hojas (Hoja1 y Hoja2)
    En la Hoja1 en la celda C3 tengo el valor ALAVA
    La celda D3 tiene definida una validación por lista cuyo origen es =INDIRECTO(C3)

    En Insertar>Nombre>Definir he definido el nombre ALAVA=DESREF(Hoja2!$C$1;0;0;CONTARA (Hoja2!$C:$C)-1;1)
    En la Hoja2, en la columna C tengo introducidos toda uan serie de valores que deberían aparecer en el desplegable de D3 (Hoja1) pero no se despliega nada.

    Gracias.

    ResponderBorrar
  145. ¿Has puesto validación de datos-lista en la celda donde debe desplegarse la lista?

    ResponderBorrar
  146. Si, Jorge.
    Aparece el icono para desplegar pero no despliega nada....

    Gracias

    ResponderBorrar
  147. Entonces tu problema está en otro lado. Puedes enviarme el archivo para que le de un vistazo.

    ResponderBorrar
  148. Hola Jorge! gracias por tu blog, es genial!!
    Pero me encuentro con la siguiente complicación:
    La primera lista desplagable son PRENDAS, la segunda DESCRIPCIÓN (esta es dependiente de la primera..sin problema), la tercera COLOR (esta depende de PRENDAS Y DESCRIPCION) y la última es NUMERO (depende de PRENDAS, DESCRIPCIÓN Y COLOR)...
    Cómo hago la validación de datos para COLOR y NUMERO? es posible?

    Gracias por tu atención..un saludo

    Ana Isabel

    ResponderBorrar
  149. Hola Ana Isabel,
    si usas Excel 2003 o posterior (2007, 2010) te recomiendo la técnica que muestro en esta nota.

    ResponderBorrar
  150. Buenas tardes,

    Por favor me confirmas si definitivamente una lista desplegable por validación, no hay forma de cambiarle el tamaño de la letra, a menos que sea aumentando el zoom.

    Muchas gracias!!

    ResponderBorrar
  151. No, no hay forma. Tal vez puedas hacerlo cambiando ciertas definiciones en el Windows.

    ResponderBorrar
  152. Hola Jorge:

    Quiero trabajar con listas dependientes pero estoy atorado con la definición de nombres.Estoy haciendo un formato para que usuarios puedan indicarnos exactamente sus requerimientos.. tengo 2 listas, en la primera indico el nombre y descrición del producto y en la segunda las opciones a elejir... ejemplo de datos de la primer columna: "Equipo de detección y extinción de incendios, Equipos de ALta frecuencia UHF, Equipos de baja frecuencia especiales.. etc..

    Hay una manera de asignar un nombre largo y con espacios a las celdas, sin utilizar Vba o macros...

    Gracias

    ResponderBorrar
  153. Los nomnbres no pueden contener espacios, determinados símbolos o ser idénticos a direcciones de celdas. Pero una forma de sobreponerse al problema de los espacios es usar la función SUSTITUIR para agregar los "underscores" (_) y "construir" el nombre a partir de los datos ingresados por el usuario.

    ResponderBorrar
  154. Hola, estpoy tratando de implementar esto en un excel 2003, abierto con excel 2007, al crear la parte que dice DEfinición de Nombres al escribir los rangos por ejemplo : =Hoja1!$K$11:$K$15 esto ahce que se marque un cuadro azul al rededor del rango pero al darle enter aparece un error #¡VALOR!

    entiendo que algo estoy haciendo mal pero no logro encontrar qué es, agradeceré su ayuda

    ResponderBorrar
  155. Alguna de las celdas en el rango K11:K155 contiene una fórmula que da un error #VALOR!

    ResponderBorrar
  156. Gran, gran Aportación muy simple y nada complicada, estuve buscando muchas formas de validación dependiente y esta por mucho es la mejor de todas!!!

    Saludos

    ResponderBorrar
  157. Buen dia
    Jorge
    Fijate que una de tus respuestas es muy buena la de listas desplegable que mas atras menciona un compañero yo lo que quiero hace es que haya mas celdas que se desplieguen de estas mismas pero no puede pregunta se puede enlistar mas de dos celdas y usar indirecto enmas de dos
    esperando que este bien espero tu pronta respuesta
    Gracias

    ResponderBorrar
  158. Bien, me resultó un tanto difícil interpretar tu consulta. Te sugiero que leas esta nota sobre el tema.

    ResponderBorrar
  159. Hola Jorge, primero que todo exclente por tu pagina

    Estoy tratando de crear la referencia dinamica con OFFSET, pero no logro hacer que funcione

    este rango lo llamo COLOMBIA
    =OFFSET(Sheet2!C1,0,0,COUNTA(Sheet2!C:C)-1,1)

    cuando selecciono en la lista desplegable a COLOMBIA en la otra lista no me aparece ningun valor

    Muchas gracias de antemano
    Saludos,
    Jorge

    ResponderBorrar
  160. Jorge,
    en la segunda validación seguramente estás usando la función INDIRECTO. Esta función sólo acepta rangos como argumento. En esta nota comento algunos rodeos posibles.

    ResponderBorrar
  161. Hola Jorge, si estás en lo correcto, estoy usando INDIRECT.
    Muchas gracias y de nuevo felicitaciones por la página
    Saludos,
    Jorge

    ResponderBorrar
  162. HOLA Sabes es que quiero hacer el ejemplo que da usted pero no se como hacerlo dicen que haga una lista con paises y ciudades de cadAa país, pero lo hice y no entiendo que mas hay que hacer no sé donde se validan los datos no entiendo y tengo que hacer el ejemplo de lista desplegable. Porfa

    ResponderBorrar
  163. La mejor forma de aprender la técnica es descargar los archivos de los ejemplos de las diversas notas sobre el tema y estudiarlos.
    Podés ver todas las notas apretando el enlace "Listas desplegables" en la nube de temas (en la parte superior de del blog)

    ResponderBorrar
  164. Hola y, de antemano: gracias. El blog es una pasada y me ha ayudado a ir comprendiendo esto del excel.
    Soy bastante novato en esto, he aplicado tu ejemplo y va estupendo, pero (siempre tiene que haber un pero...), no soy capaz de hacerlo funcionar si las listas de datos estan en otro libro. Consigo hacer aparecer los paises, pero las ciudades se me resisten. He aplicado nombre al rango de los paises en el libro de datos y mediante fórmula, en el libro del desplegable, hago referencia a ese rango, pero la función INDIRECTO no me trae las ciudades.

    De nuevo gracias

    ResponderBorrar
  165. Hola Antonio,
    INDIRECTO sólo acepta rangos en forma de texto. En mi comentario del 25 de agosto hay un enlace a una nota donde explico el problema y propongo algunas soluciones.
    También te sugiero que veas la nota sobre listas desplegables dependientes múltiples.

    ResponderBorrar
  166. Hola Jorge, de nuevo gracias (por la rapidez en la contestación y de antemano por esta siguiente pregunta)

    No soy capaz de ver la solución. Mi ejemplo mo es de paises y ciudades, es de empresas y cursos a celebrar en dichas empresas. Son cerca de 60 empresas y unos 150 cursos en total. Aplico tu ejemplo al pie de la letra y va fenómeno, pero el problema es que necesito las empresas y los curso en otro libro. Como te dije anteriormente, no hay problema en desplegar en el libro 1, las empresas alojadas en el libro 2. El problema es que aparezcan los cursos relacionados con esa empresa (que también está en la hoja 2. Me has referido a un par de notas tuyas, pero no soy capaz de ver la solución. Si no puedo utilizar la función INDIRECTO para capturar los cursos, y siento ser tan limitadito: ¿qué hago? ¿por dónde tiro?

    Gracias de nuevo

    ResponderBorrar
  167. Antonio,

    ponete en contacto conmigo por mail privado (fijate en el enlace Ayuda en la parte superior del blog)

    ResponderBorrar
  168. Hola, ante todo un gusto; mi pregunta es la siguiente:
    se puede usar una macro para imprimir una hoja dependiendo del valor de una celda ...por ejemplo si A20 tiene 3; que la macro me imprima 3 tambien ... se podria hacer eso...es que trato y trato y no puedo..de ante mano muchas Gracias por tu tiempo y ayuda .. !

    ResponderBorrar
  169. Hola, ante todo un gusto; mi pregunta es la siguiente:
    se puede usar una macro para imprimir una hoja dependiendo del valor de una celda ...por ejemplo si A20 tiene 3; que la macro me imprima 3 tambien ... se podria hacer eso...es que trato y trato y no puedo..de ante mano muchas Gracias por tu tiempo y ayuda .. !

    ResponderBorrar
  170. Hola, te puedo mandar el archivo a ver si te das una idea clara de lo que quiero que me ayudes?? con lo de la macro para impersion..

    ResponderBorrar
  171. Si, fijate en lo que escribo en el enlace "Ayuda", en la parte superior del blog.

    ResponderBorrar
  172. Hola Jorge, eres una maquina de excel tio, en serio, jaja. Bueno mi problema es el siguiente, he creado una lista desplegable a partir de un rango de celdas y lo que quiero es que sólo me deje seleccionar algunos de los valores de la lista desplegable dependiendo de el valor de otra celda. Es decir, si A4=A5 sólo me deje seleccionar 5 de los 8 valores que tiene mi lista. No se si está claro o no y si se podrá hacer. Gracias de antemano.

    ResponderBorrar
  173. EN principio se puede, pero tendrías que ser más específico en el planteo (te sugiero que lo hagas por mail privado).
    Si se trata de un número limitado de posibilidades, podrías crear una lista desplegable dependiente para cada caso.

    ResponderBorrar
  174. Hola,

    Yo quería saber si es posible elegir más de una opción de una lista desplegable y de qué manera puedo hacerlo.

    Muchas gracias por tu ayuda! El blog es genial

    ResponderBorrar
  175. No, no se puede. Validación de datos permite controlar el ingreso de los datos en una celda. Una celda no puede contener dos datos distintos al mismo tiempo.

    ResponderBorrar
  176. Hola Jorge,

    ¡Excelente blog!, mi más sincera enhorabuena.

    Una preguntita a colación de que una celda no puede contener dos datos distintos al mismo tiempo.

    Estoy casi seguro de que no puedo hacer lo que quiero, pero por si acaso te pregunto ...

    Tengo creada una hoja en la que a su vez en cada fila hay un cliente y en una determinada celda de cada fila tengo varias casillas de verificación para saber en qué productos está interesado cada uno (¡ojo!, en una misma celda varias casillas de verificación).

    El caso es que me gustaría hacer ahora una selección de aquellos clientes que estén interesados en uno u otro producto en función de si está o no activada cada casilla de verificación, y aquí es donde tengo el problema, pues no veo como buscar el resultado de cada distinta casilla de verificación dentro de la celda para que me muestre o no toda la fila.

    Supongo que si es como dices, al tener varias casillas de verificación en una sola celda, hay varios resultados y me es imposible esa búsqueda.

    ¿Cómo harías tú para poder hacer la selección que necesito? Imagino que me dirás que poniendo una casilla de verificación en cada celda, pero ahora mismo sería trabajo de chinos (sin ofenderles por supuesto es una manera de hablar ...) ya que tengo toda la hoja creada.

    Imagino que otra opción es poner cada tipo de producto en una fila y poder seleccionar "Sí" o "No" ... pero estaríamos de nuevo con el condicionante de rehacer la hoja entera ...

    Muchas gracias de antemano.

    ResponderBorrar
  177. Hola necesito saber como hacer para que al elegir un dato de una lista desplegable en otra celda me cambie a un valor que yo asigne.EJ: Lista desplegable TERMINADO-PENDIENTE y cuando elija TERMINADO en otra celda me cambie a 100% y cuando elija PENDIENTE me cambie a 0%
    Saludos

    ResponderBorrar
  178. Estimado,
    las casillas de verificación no están en la celda, sino que al igual que las gráficas en las hojas, "flotan" sobre las celdas. Se puede regular el tamaño para que parezca que están en la celda, pero son objetos en si mismos.
    Ahora, cada casilla se puede vincular a una celda. De esta manera podrías vincular cada casilla a una celda en columnas auxiliares (que pueden estar ocultas). A partir de aquí podrías usar Autoofiltro o, mejor aún, Filtro Avanzado para extraer los clientes que cumplen con los criterios (cuando la casilla está marcada, la celda vinculada recibe el valor VERDADERO).

    ResponderBorrar
  179. En la otra celda hay que usar una fórmula condicional

    =SI(celda con lista dependiente="TERMINADO",100%,0%)

    por ejemplo

    ResponderBorrar
  180. muchas gracias por la página, me ha ayudado bastante.

    Saludos

    -Isaac

    ResponderBorrar
  181. Hay alguna manera de comprobar si un valor se encuentra dentro de un rango, algo así: =SI(O(F6:F250)=D19);1;0), sé que esto no funciona, pero es algo así lo que quiero, es decir, que si el valor de la casilla D19, es igual a alguno de los que contiene la matriz F6:F250 me de 1.

    Ya se que no tiene que ver con las listas desplegables, pero hace tiempo me resolviste una duda acerca de las listas desplegables y me gustaría que me ayudaras con esto también. Muchas gracias!

    ResponderBorrar
  182. No hay necesidad de usa la función SI, sino usar O(F6:F250)=D19) como función matricial
    ={O(F6:F250)=D19)}. Fijate en esta nota.
    Para que el resultado sea 1 o 0 en lugar de VERDADERO o FALSO, basta con multiplicar la fórmula por 1.

    ResponderBorrar
  183. Genial este blog!!! He aprendido muchísimo!!!

    Gracias!!

    ResponderBorrar
  184. Hola. HE leido la mayoría de los post.. pero a lo mejor no me fije bien. Quiero saber como puedo hacer una lista desplegable de COLOR.. Es decir.. que me de a elegir entre colores, sin palabras ni numeros... Y si es posible que segun el color que elijas digamos VERDE... poner un link a otra hoja de Excel.. Gracias

    ResponderBorrar
  185. No es posible, ya que los colores son formatos de la celda o de la fuente, no datos. Además, aún si fuera posible, es una mala práctica usar colores en lugar de datos, también en Excel 2007 o 2010 que permite filtrar por colores.

    ResponderBorrar
  186. Excelente y sencillo, me sirvió, muchas gracias!

    ResponderBorrar
  187. Hola Jorge. Lo primero felicitarte por este blog. Es una maravilla descubrir todas las posibilidades que te ofrece Excel. He estado leyendo los comentarios y no he encontrado respuesta a mi pregunta. Te la planteo a ver si puedes echarme una mano.
    He creado las listas dependientes sin ningún problema. En mi caso, al ser Jefe de Estudios de un centro escolar, lo aplico al tipo de faltas y sanciones que reciben los alumnos. El problema es que para cada falta tengo que aplicar una lista de validación, pero ¿tengo que crearla a mano?. Es decir, si selecciono la primera celda donde he creado la lista de validación, y arrastro a otras celdas, la lista de validación dependiente no cambia. No se si me he explicado bien. Lo que quiero es que la celda A3 dependa de la A2, la B3 dependa de la B2, y así sucesivamente. Pero no quiero tener que crear todas las listas de validación manualmente, ¿existe una forma rápida de hacerlo?
    Muchas gracias por tu ayuda.

    ResponderBorrar
  188. Tienes que asegurarte 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).

    ResponderBorrar
  189. Muchas gracias Jorge. Problema resuelto.

    ResponderBorrar
  190. Hola Jorge, he seguido las indicaciones para hacer listas desplegables dependietes, pero cuando quiero hacer la dependiente siempre me sale el mensaje "el origen actualmente evalua un error", la formual que utilizo es =INDIRECTO($B$2) he revisado y estandarizadola definición de nombres con sus campos,que está en otra hoja del mismo libro, no encuentro que mas revisar, puedes ayudarme?
    Otra observación es que mi primer campo desplegable del que depende el siguiente campo me sale bien, pero nunca puedo utilizar el nombre definido, siempre me sale un mensaje de error, la formula que utilice para que funcionara es =Datos!$A$2:$A$21

    ResponderBorrar
  191. Tendrías que enviarme el archivo. Fijate en el enlace Ayuda.

    ResponderBorrar
  192. Hola Jorge buen día,

    Tengo un pequeño problema.

    Dentro de un book en Excel tengo diferente informacion (Vol de ventas y participaciones de mercado).
    Al ser tan extenso en Información para usuarios con poca relación con ellas les cree unas listas desplegables ligadas a su vez con una busqueda que de diera un valor total.
    Osea ellos al dar deplegar las 4 tipos de listas donde seleccionan "AÑO+MES+DIA+CODIGO" otienen una cifra todo esto me funciona bien.

    EL problema es como hago para que en la celda donde se encuentra la lista desplegable aparezca siempre el boton de lista y no solo cuando se esta posicionado por encima de ella.

    Graccías, por cierto excelente Blog y excelente manejo de INFO.

    ResponderBorrar
  193. Buen día,

    tenés que usar una combobox. En esta nota podés ver un ejemplo.
    Tal vez publique una nota ampliando sobre el tema.

    ResponderBorrar
  194. Muy bueno este post!!!

    Como dice el refrán, "no te acostarás sin saber una cosa más" (en mi caso la función INDIRECTO)

    :)

    ResponderBorrar
  195. Hola Jorge, ante todo agradecerte y felicitarte por el blog.
    Le he estado echando un vistacito al ejemplo, junto con el añadido para la petición de Santos.
    (he de avisarte que no tengo ni idea de vba)

    Miré el código:
    Hola,
    lo único que se me ocurre es usar un evento (macro) ligado a la hoja.
    Para nuestro ejemplo:
    1 - en la pestaña Hoja1 haces clic con el botón derecho del mouse y abres Ver Código
    2 - en el módulo de la hoja pones este código

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Union(Range("A5"), Target).Address = Range("A5").Address Then
    Range("B5").ClearContents
    End If
    End Sub

    y no entendía el propio if
    "If Union(Range("A5"), Target).Address = Range("A5").Address"

    No sabía para que utilizabas el unión, probé con
    If Target.Address = Range("A5").Address
    y funciona. Mi pregunta es:
    ¿es necesario el uso de union?¿donde está la diferencia? Muchas gracias.
    Un saludo.

    ResponderBorrar
  196. En tu caso no hay ninguna diferencia. EL método Union la usamos cuando Target puede encontrarse en un rango que contiene más de una celda. Por ejemplo

    Union(Range("A5:A10"), Target).Address = Range("A5:A10").Address

    dispara el evento si hay un cambio en cualquiera de las celdas dentro del rango A5:A10

    ResponderBorrar
  197. Walter
    Que tal Jorge, ya había tenido la oportunidad de ver tu excelente blog con anterioridad pero nunca lo había ocupado como hasta hoy. Tu ejemplo me sirvió bastante y me funcionó con una prueba, pero al querer aplicarlo al documento real no me trae los resultados en la segunda lista ( que es donde puse la fórmula de =INDIRECTO($A$3) )

    El caso que no me funciona por que de donde estoy jalando la información es de unas celdas (en la misma hoja que la Lista) que hacen referencia a otras hojas, es decir, estas se alimentan de información de otras hojas. Y ahí fue donde ya no me arrojó el resultado. No sé si pueda mandarte el archivo para que lo veas y me des una respuesta, por que en el ejemplo de este artículo vi que te fue posible hacer referencia a datos en otras hojas, sólo que en mi caso serian 11 hojas.
    De verdad te estaría muy agradecido por esto. Gracias y tu blog es de lo mejor. Sigue así!

    PD: mi correo es waltersar@gmail.com

    Gracias de nuevo!

    ResponderBorrar