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

miércoles, julio 19, 2006

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 comments:

Anónimo,  05 noviembre, 2006 19:47  

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.

Jorge L. Dunkelman 05 noviembre, 2006 22:03  

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

Julio 20 marzo, 2007 04:17  

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.

Jorge L. Dunkelman 20 marzo, 2007 18:38  

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)

db 02 mayo, 2007 16:38  

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.

Jorge L. Dunkelman 02 mayo, 2007 17:32  

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.

SaNToS,  20 junio, 2007 05:56  

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?

Jorge L. Dunkelman 20 junio, 2007 20:41  

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.

SaNToS,  21 junio, 2007 02:22  

Gracias Jorge!!! eres un genio!!

Anónimo,  26 junio, 2007 21:34  

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

Emmy 02 julio, 2007 06:03  

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

Jorge L. Dunkelman 02 julio, 2007 19:37  

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.

Anónimo,  19 julio, 2007 12:18  

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

Anónimo,  19 julio, 2007 17:15  

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.

Jorge L. Dunkelman 20 julio, 2007 11:16  

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.

Anónimo,  20 julio, 2007 17:28  

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.

Jorge L. Dunkelman 23 julio, 2007 20:33  

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

Anónimo,  24 julio, 2007 20:35  

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

Salva 01 agosto, 2007 11:53  

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.

Matias 01 agosto, 2007 17:07  

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

Jorge L. Dunkelman 01 agosto, 2007 22:51  

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

Marcelo Tobar,  12 octubre, 2007 21:13  

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.

Jorge L. Dunkelman 13 octubre, 2007 14:31  

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.

hastrakan 24 octubre, 2007 14:37  

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?

Jorge L. Dunkelman 30 octubre, 2007 21:10  

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.

HEDAFONNE 19 noviembre, 2007 23:47  

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)"

Jorge L. Dunkelman 20 noviembre, 2007 21:04  

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.

Jaime Abett,  15 enero, 2008 00:18  

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.

Jorge L. Dunkelman 26 enero, 2008 20:12  

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

Anónimo,  25 febrero, 2008 20:41  

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

Jorge L. Dunkelman 25 febrero, 2008 21:56  

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.

Anónimo,  08 marzo, 2008 05:27  

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,

Jorge L. Dunkelman 09 marzo, 2008 17:54  

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

Anónimo,  10 marzo, 2008 03:43  

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!!!

Jorge L. Dunkelman 10 marzo, 2008 20:34  

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.

Anónimo,  11 abril, 2008 15:19  

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.

Jorge L. Dunkelman 14 abril, 2008 18:10  

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

Anónimo,  16 abril, 2008 01:43  

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

Jorge L. Dunkelman 16 abril, 2008 19:11  

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.

Anónimo,  17 abril, 2008 14:21  

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

Isay 22 abril, 2008 08:40  

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

Jorge L. Dunkelman 24 abril, 2008 11:43  

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.

ainhoa 13 junio, 2008 10:07  

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,

Jorge L. Dunkelman 13 junio, 2008 21:42  

Ainhoa

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

Anónimo,  17 junio, 2008 19:57  

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

Jorge L. Dunkelman 19 junio, 2008 19:55  

Hola

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

Anónimo,  02 julio, 2008 08:07  

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

Jorge L. Dunkelman 02 julio, 2008 18:00  

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.

Anónimo,  02 julio, 2008 19:50  

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

Jorge L. Dunkelman 03 julio, 2008 17:12  

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.

Anónimo,  09 julio, 2008 09:31  

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

Jorge L. Dunkelman 09 julio, 2008 12:03  

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.

Anónimo,  09 julio, 2008 14:10  

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

Anónimo,  09 julio, 2008 18:07  

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?

Jorge L. Dunkelman 09 julio, 2008 23:15  

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.

Anónimo,  09 julio, 2008 23:36  

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.

Max_B,  11 julio, 2008 16:45  

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!!

Jorge L. Dunkelman 13 julio, 2008 18:52  

Hola Max

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

Anónimo,  21 julio, 2008 18:37  

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

Jorge L. Dunkelman 21 julio, 2008 20:48  

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.

Anónimo,  14 agosto, 2008 19:44  

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.

Jorge L. Dunkelman 15 agosto, 2008 23:18  

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

Anónimo,  07 setiembre, 2008 19:35  

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

Jorge L. Dunkelman 08 setiembre, 2008 20:34  

Hola Paolo

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

Anónimo,  10 setiembre, 2008 23:21  

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

Jorge L. Dunkelman 19 setiembre, 2008 07:11  

Hola

Ponte en contacto conmigo por mail.

Anónimo,  24 octubre, 2008 20:41  

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

Jorge L. Dunkelman 25 octubre, 2008 10:46  

Ten[es que usar la técnica que muestro en la nota sobre listas desplegables dependientes múltiples.

Anónimo,  29 octubre, 2008 00:13  

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.

Jorge L. Dunkelman 29 octubre, 2008 11:36  

Hola

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

xochitl,  17 noviembre, 2008 06:43  

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

Jorge L. Dunkelman 17 noviembre, 2008 17:30  

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

Anónimo,  29 noviembre, 2008 22:29  

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

Jorge L. Dunkelman 03 diciembre, 2008 06:58  

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)

Anónimo,  17 diciembre, 2008 14:48  

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

Jorge L. Dunkelman 17 diciembre, 2008 21:46  

Hola Juan

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

Anónimo,  15 enero, 2009 17:58  

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!

Anónimo,  15 enero, 2009 18:00  

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!

Jorge L. Dunkelman 16 enero, 2009 08:12  

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.

Rodrigo Balbontín,  16 enero, 2009 18:12  

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

Jorge L. Dunkelman 16 enero, 2009 18:53  

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 $

Rodrigo Balbontín,  17 enero, 2009 00:53  

Estimado,

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

RBT

ags600424 19 enero, 2009 08:08  

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

Jorge L. Dunkelman 19 enero, 2009 19:35  

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.

Anónimo,  03 febrero, 2009 13:40  

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

Jorge L. Dunkelman 03 febrero, 2009 21:52  

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

Anónimo,  06 febrero, 2009 13:37  

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

Anónimo,  12 febrero, 2009 15:04  

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

Jorge L. Dunkelman 12 febrero, 2009 19:14  

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)

Anónimo,  13 febrero, 2009 09:47  

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

AloXus 13 febrero, 2009 10:04  

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

Jorge L. Dunkelman 13 febrero, 2009 14:27  

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.

Jorge L. Dunkelman 16 febrero, 2009 14:49  

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.

Anónimo,  16 febrero, 2009 17:08  

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

Anónimo,  18 febrero, 2009 21:56  
Este blog ha sido eliminado por un administrador de blog.
Coco,  11 marzo, 2009 18:04  

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!

Jorge L. Dunkelman 11 marzo, 2009 22:26  

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

Copito 12 marzo, 2009 01:05  

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

Jorge L. Dunkelman 12 marzo, 2009 20:10  

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.

franklin,  01 abril, 2009 19:58  

Me fue muy util tu aporte, gracias!

Anónimo,  27 abril, 2009 22:36  

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

Jorge L. Dunkelman 28 abril, 2009 15:54  

Hola Luis

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

Anónimo,  29 abril, 2009 14:16  

Perfecto.

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

Un saludo.

Luis.

Julio 30 abril, 2009 20:29  

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.

Jorge L. Dunkelman 30 abril, 2009 21:37  

Hola Julio

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

Anónimo,  04 mayo, 2009 22:15  

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

Jorge L. Dunkelman 05 mayo, 2009 19:05  

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

hectorizate 12 mayo, 2009 03:52  

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.

Jhon,  19 mayo, 2009 16:43  

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

Jorge L. Dunkelman 19 mayo, 2009 21:04  

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.

Jorge L. Dunkelman 19 mayo, 2009 21:31  

Hectorizate

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

Gerardo 10 julio, 2009 03:55  

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

Jorge L. Dunkelman 11 julio, 2009 20:30  

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.

Anónimo,  03 octubre, 2009 17:29  

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

Anónimo,  06 octubre, 2009 02:05  

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

Jorge L. Dunkelman 06 octubre, 2009 19:40  

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

Pablo,  29 octubre, 2009 04:25  

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

Jorge L. Dunkelman 29 octubre, 2009 16:33  

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

Pablo,  29 octubre, 2009 19:16  

Gracias Jorge, muy amable. Saludos

Anónimo,  04 noviembre, 2009 02:01  

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

Jorge L. Dunkelman 04 noviembre, 2009 19:07  

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

Angelo Marconi 05 noviembre, 2009 13:49  

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

Jorge L. Dunkelman 06 noviembre, 2009 18:50  

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.

Angelo Marconi 09 noviembre, 2009 14:44  

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.

Jorge L. Dunkelman 10 noviembre, 2009 20:58  

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

Alvaro El Salvador,  28 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

Jorge L. Dunkelman 28 noviembre, 2009 09:49  

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 "_".

Elena,  17 diciembre, 2009 12:58  

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

Jorge L. Dunkelman 17 diciembre, 2009 14:45  

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))

harold 21 diciembre, 2009 19:11  

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

Jorge L. Dunkelman 21 diciembre, 2009 19:50  

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

Anónimo,  05 enero, 2010 20:32  

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

Jorge L. Dunkelman 05 enero, 2010 21:14  

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

Anónimo,  06 enero, 2010 16:08  

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

Anónimo,  06 enero, 2010 16:46  

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

Jorge L. Dunkelman 06 enero, 2010 18:04  

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

Juan R Garces 07 enero, 2010 18:10  

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.

Jorge L. Dunkelman 08 enero, 2010 07:42  

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

Anónimo,  22 enero, 2010 19:02  

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

Jorge L. Dunkelman 23 enero, 2010 09:32  

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

Anónimo,  08 febrero, 2010 19:33  

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.

Jorge L. Dunkelman 08 febrero, 2010 20:47  

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".

Anónimo,  24 febrero, 2010 19:33  

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.

Jorge L. Dunkelman 24 febrero, 2010 20:34  

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.

Anónimo,  25 febrero, 2010 16:43  

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.

Jorge L. Dunkelman 25 febrero, 2010 18:41  

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

Anónimo,  25 febrero, 2010 19:53  

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

Gracias

Jorge L. Dunkelman 26 febrero, 2010 09:48  

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

Anónimo,  07 marzo, 2010 13:32  

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

Jorge L. Dunkelman 07 marzo, 2010 19:36  

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

Ana,  16 marzo, 2010 19:36  

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!!

Jorge L. Dunkelman 16 marzo, 2010 20:02  

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

Anónimo,  01 abril, 2010 01:46  

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

Jorge L. Dunkelman 03 abril, 2010 14:53  

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.

omar 07 mayo, 2010 19:09  

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

Jorge L. Dunkelman 07 mayo, 2010 20:58  

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

David 10 junio, 2010 16:48  

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

Anónimo,  31 julio, 2010 00:16  

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

Jorge L. Dunkelman 31 julio, 2010 10:28  

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

Anónimo,  24 agosto, 2010 23:59  

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

Jorge L. Dunkelman 25 agosto, 2010 01:07  

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.

Anónimo,  25 agosto, 2010 19:03  

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

Anónimo,  07 setiembre, 2010 18:32  

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

Jorge L. Dunkelman 07 setiembre, 2010 19:24  

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)

Antonio,  24 setiembre, 2010 08:21  

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

Jorge L. Dunkelman 24 setiembre, 2010 12:29  

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.

Antonio,  25 setiembre, 2010 09:23  

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

Jorge L. Dunkelman 25 setiembre, 2010 10:46  

Antonio,

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

Anónimo,  25 octubre, 2010 18:16  

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 .. !

Anónimo,  25 octubre, 2010 18:18  

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 .. !

Anónimo,  26 octubre, 2010 17:13  

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..

Jorge L. Dunkelman 26 octubre, 2010 19:25  

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

Anónimo,  03 noviembre, 2010 12:00  

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.

Jorge L. Dunkelman 03 noviembre, 2010 19:09  

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.

Cristina,  04 noviembre, 2010 14:24  

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

Jorge L. Dunkelman 04 noviembre, 2010 14:48  

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.

Raul 10 noviembre, 2010 18:10  

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.

Anónimo,  11 noviembre, 2010 03:59  

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

Jorge L. Dunkelman 11 noviembre, 2010 17:31  

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).

Jorge L. Dunkelman 11 noviembre, 2010 17:33  

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

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

por ejemplo

Isaac 02 diciembre, 2010 00:00  

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

Saludos

-Isaac

Anónimo,  04 enero, 2011 14:05  

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!

Jorge L. Dunkelman 07 enero, 2011 07:59  

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.

Clara,  26 enero, 2011 15:16  

Genial este blog!!! He aprendido muchísimo!!!

Gracias!!

Anónimo,  04 marzo, 2011 20:01  

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

Jorge L. Dunkelman 05 marzo, 2011 07:22  

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.

Anónimo,  08 marzo, 2011 09:11  

Excelente y sencillo, me sirvió, muchas gracias!

Raul 08 marzo, 2011 21:49  

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.

Jorge L. Dunkelman 09 marzo, 2011 20:07  

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).

Raul 10 marzo, 2011 00:53  

Muchas gracias Jorge. Problema resuelto.

GLORIA,  24 marzo, 2011 17:00  

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

Jorge L. Dunkelman 24 marzo, 2011 17:53  

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

Anónimo,  30 marzo, 2011 04:52  

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.

Jorge L. Dunkelman 30 marzo, 2011 06:41  

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.

solrackorner 27 abril, 2011 20:58  

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)

:)

Angel,  04 mayo, 2011 12:11  

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.

Jorge L. Dunkelman 04 mayo, 2011 15:13  

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

Walter Jesus 05 mayo, 2011 02:00  

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!

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP