¿Cómo sombrear celdas en gris basándose en otra columna o en la elección de una lista desplegable en Excel?
En tareas prácticas de Excel, a menudo surgen escenarios donde es necesario hacer que los datos destaquen visualmente o sean menos prominentes dependiendo del valor de una celda relacionada. Un requisito común es "sombrear en gris" (oscurecer o desactivar visualmente) ciertas celdas automáticamente cuando otra columna contiene un valor específico o cuando se realiza una selección en una lista desplegable.
Este tipo de formato dinámico hace que los conjuntos de datos grandes sean más fáciles de interpretar, ayuda en el flujo de trabajo donde es necesario restringir las entradas, o clarifica qué elementos no son actualmente accionables. Por ejemplo, una columna de estado del proyecto podría activar el sombreado en gris de la descripción de una tarea si el estado es "Completado".
Este artículo presenta varias formas efectivas de sombrear celdas en gris basándose en los valores de otra columna o en la elección de una lista desplegable en Excel, cubriendo tanto el formato condicional estándar como enfoques avanzados con VBA para requisitos complejos. También encontrarás sugerencias para solucionar problemas y consejos prácticos sobre su uso.
Sombrear celdas en gris basándose en otra columna o en la elección de una lista desplegable
VBA: Automatizar el sombreado en gris de celdas basándose en otra columna o lista desplegable
Sombrear celdas en gris basándose en otra columna o en la elección de una lista desplegable
Supongamos que tienes dos columnas: la columna A contiene tus datos principales (como tareas o descripciones), y la columna B contiene indicadores o estados (como "SÍ"/"NO", o selecciones de una lista desplegable). Es posible que quieras sombrear visualmente en gris los elementos de la columna A según los valores de la columna B. Por ejemplo, cuando una celda en la columna B muestra "SÍ", la celda correspondiente en la columna A aparecerá sombreada en gris, marcándola como inactiva o completada. Si la columna B tiene algo distinto de "SÍ", la columna A mantiene su apariencia normal.
Este enfoque es adecuado para hojas de gestión de tareas, listas de verificación, flujos de trabajo, u otras hojas donde el estado en una columna controla el formato en otra. Mantiene tus datos organizados y fáciles de usar, pero depende de columnas bien estructuradas y alineadas (asegúrate de que las filas coincidan correctamente).
1. Selecciona las celdas en la columna A que deseas sombrear en gris automáticamente basándote en otra columna. Por ejemplo, selecciona A2:A100 (selecciona solo las celdas que coinciden con el rango utilizado en la columna B). Luego ve a Inicio > Formato condicional > Nueva regla.
2. En el cuadro de diálogo Nueva regla de formato, haz clic en Usar una fórmula para determinar qué celdas formatear. Ingresa esta fórmula =B2="SÍ" en el cuadro etiquetado Formato de los valores donde esta fórmula sea verdadera, lo que verifica si el valor en la celda correspondiente de la columna B es "SÍ":
3. Luego, haz clic en el Formato botón. En el Formato de celdas cuadro de diálogo, elige un color gris en la pestaña Relleno Esta será el color de fondo utilizado para sombrear en gris.
4. Después de configurar el color, haz clic en Aceptar para cerrar la ventana Formato de celdas, y luego haz clic en Aceptar de nuevo para aplicar tu nueva regla de formato.
Desde ahora, cada vez que la columna B muestre "SÍ", la celda correspondiente en la columna A aparecerá sombreada en gris. Si la columna B cambia a otro valor (como "NO" o en blanco), la apariencia de la columna A vuelve a la normalidad. Este método es instantáneo y no necesita actualizaciones manuales después de la configuración.
Consejos: Para aplicar esto con una lista desplegable en la columna B, el proceso es similar. Este enfoque es especialmente útil cuando la columna de control utiliza opciones estandarizadas, como el estado del proyecto ("En Progreso", "Completado"), casillas de verificación ("Hecho", "Pendiente"), o listas de validación con valores específicos permitidos.
Para crear una lista desplegable en la columna B (la columna de control):
- Selecciona las celdas en la columna B donde deseas tener un menú desplegable.
- Haz clic en Datos > Validación de datos.
- En el cuadro de diálogo Validación de datos, elige Lista desde el Permitir menú desplegable. En el cuadro Origen escribe o selecciona un rango de celdas que contenga los valores permitidos (por ejemplo, SÍ,NO).
Ahora, tendrás una lista desplegable en cada celda de la columna B, permitiendo a los usuarios elegir entre opciones predefinidas:
Repite la configuración de Formato condicional como se describe arriba, utilizando una fórmula que coincida con el elemento que deseas usar para activar el sombreado en gris (por ejemplo, =B2="SÍ"Después de aplicar el formato condicional, las celdas objetivo en la columna A se sombrearán automáticamente en gris siempre que se seleccione "SÍ" en la lista desplegable de la columna B.
Consejos adicionales y precauciones:
- Asegúrate de que el rango del formato condicional en la columna A coincida con el área de datos y esté alineado con las referencias de la columna B. Si caen fuera de sincronía, el formato puede no aplicarse como se espera.
- Al copiar o rellenar datos en las columnas, verifica que las referencias (por ejemplo, B2) se actualicen apropiadamente.
- Para obtener los mejores resultados, borra cualquier formato antiguo de tus rangos antes de aplicar nuevas reglas.
- Para eliminar el efecto de sombreado en gris, cambia el valor disparador en la columna B o elimina la regla de formato condicional.
- Si tu hoja de cálculo es compartida, asegúrate de que los usuarios sepan qué valores activarán el formato.
Si el formato condicional no funciona como se espera, verifica que las celdas en la columna B contengan exactamente los valores que la fórmula está probando (sin espacios adicionales, con mayúsculas correctas si no usas coincidencia exacta, y validación contra caracteres ocultos).

Descubre la Magia de Excel con Kutools AI
- Ejecución Inteligente: Realiza operaciones en celdas, analiza datos y crea gráficos, todo impulsado por comandos simples.
- Fórmulas Personalizadas: Genera fórmulas adaptadas para optimizar tus flujos de trabajo.
- Codificación VBA: Escribe e implementa código VBA sin esfuerzo.
- Interpretación de Fórmulas: Comprende fórmulas complejas con facilidad.
- Traducción de Texto: Supera las barreras del idioma dentro de tus hojas de cálculo.
VBA: Automatizar el sombreado en gris de celdas basándose en otra columna o lista desplegable
Para escenarios más avanzados, como aplicar el formato por lotes, manejar múltiples condiciones más complejas, o cuando las reglas y límites del formato condicional no cumplen con tus requisitos, puedes usar código VBA para automatizar el sombreado en gris de las celdas.
Casos de uso comunes:
- Sombrear automáticamente filas enteras o rangos específicos basándose en selecciones de listas desplegables o cualquier lógica vinculada a otra columna.
- Asegurar que el formato permanezca consistente incluso después de importar datos o actualizar hojas mediante macros.
- Aplicar múltiples estados condicionales que excedan los límites del formato condicional incorporado.
1. Haz clic en Herramientas de desarrollo > Visual Basic para abrir el editor de VBA (Alt+F11 es un atajo). En la ventana de VBA, haz clic en Insertar > Módulo. En el nuevo módulo, copia y pega el siguiente código:
Sub GreyOutCellsBasedOnAnotherColumn()
Dim ws As Worksheet
Dim lastRow As Long
Dim checkCol As String
Dim dataCol As String
Dim i As Long
Dim triggerValue As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
'----- Set parameters here -----
Set ws = ActiveSheet ' Or: Set ws = ThisWorkbook.Sheets("Sheet1")
checkCol = "B" ' Column to check (e.g., B)
dataCol = "A" ' Column to grey out (e.g., A)
triggerValue = "YES" ' Value that triggers grey out. Change as needed: "YES", "Complete", etc.
'----- Find last row in the check column -----
lastRow = ws.Cells(ws.Rows.Count, checkCol).End(xlUp).Row
For i = 2 To lastRow ' Assumes header in row 1
If ws.Cells(i, checkCol).Value = triggerValue Then
ws.Cells(i, dataCol).Interior.Color = RGB(191, 191, 191) ' Grey fill
Else
ws.Cells(i, dataCol).Interior.ColorIndex = xlNone ' Remove fill if condition not met
End If
Next i
End Sub
2. Para ejecutar la macro, presiona F5 con la ventana de código activa. La macro recorre cada fila en tu hoja de cálculo—comenzando en la fila 2 (para que la primera fila pueda permanecer como encabezado)—y comprueba la columna B buscando el valor disparador (por defecto, "SÍ"). Si lo encuentra, rellena la celda correspondiente en la columna A de gris. Si el valor disparador no está presente, cualquier relleno gris anterior se elimina (restableciendo la celda a su apariencia predeterminada).
Puedes personalizar los siguientes parámetros en el código:
- checkCol: Columna a verificar (por ejemplo, "B")
- dataCol: Columna para sombrear en gris (por ejemplo, "A")
- triggerValue: Valor a coincidir para el relleno gris (por ejemplo, "SÍ", "Completado", cualquier valor en tu lista)
Precauciones y consejos:
- Esta macro cambia permanentemente los fondos de las celdas. Si deseas que los colores se actualicen en vivo mientras modificas datos, considera volver a ejecutar la macro después de cualquier actualización o usa scripting del evento Worksheet_Change (solo para usuarios avanzados).
- Este enfoque no se ve afectado por el número de celdas o límites de reglas de formato condicional, por lo que es ideal para rangos dinámicos grandes o muchas condiciones.
- Si accidentalmente activas la macro y quieres eliminar los rellenos grises, simplemente ejecútala nuevamente después de borrar o cambiar los valores relevantes.
- Puedes extender la declaración If para agregar más condiciones (por ejemplo, sombrear basándose en múltiples opciones, columnas adicionales o lógica más compleja).
Usar VBA para sombrear manual o automáticamente celdas ofrece la máxima flexibilidad para soluciones de Excel complejas, a gran escala o altamente personalizadas.
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!