Finalmente descubrí cómo construir un conjunto dinámico de listas en cascada en Excel usando Validación de datos y la función INDIRECTA. Sin embargo, me encuentro con un problema.
Me gustaría configurar mi hoja de cálculo para que cada vez que se realice un cambio en una lista de validación de datos, todas las listas posteriores se establezcan en un valor predeterminado. Por ejemplo:
Digamos que tengo List1, List2, List3 y List4. Los valores de cada lista dependen de la selección realizada en la lista anterior. Cuando comienzo la hoja de cálculo, quiero que todas las listas tengan el valor predeterminado "TODAS". Cuando el usuario selecciona un valor en List1, List2 se actualiza con un conjunto de opciones válidas. Me gustaría predeterminar List2 a una de esas opciones. Sin embargo, aunque puedo hacer que List2 se complete con el conjunto correcto de opciones de selección, no puedo asignarle el valor predeterminado deseado.
Del mismo modo, si el usuario realiza una selección en List1, List2 y List3, luego regresa y cambia List1, me gustaría que List2-List4 vuelva a "ALL" por defecto.
¿Cómo hago esto?
=IF(A1="List1",C1:C5,D1:D4)
. He probado esto con el valor de la celda A1 seleccionada de una lista y funciona de la manera que busca.Respuestas:
Un método no VBA que utilizo para este problema es aplicar un formato CONDICIONAL a las celdas posteriores que verifica si el valor actual que contiene coincide con un valor en el rango de referencia actual INDIRECTO (). Si NO, la celda se vuelve roja o el valor desaparece (fuente / fondo coincidente) para que el usuario sepa que el valor de esa celda debe actualizarse / volverse a seleccionar.
Para ilustrar esto (y el método VBA mencionado por otros arriba), hay un archivo de muestra aquí . El archivo que desea es DependentLists3.xls
fuente