Colores en una función IF (Microsoft Excel)
A Steve le gustaría crear una declaración IF (usando la función de hoja de trabajo) basada en el color de una celda. Por ejemplo, si A1 tiene un relleno verde, quiere devolver la palabra «ir», si tiene un relleno rojo, quiere devolver la palabra «detener», y si es de cualquier otro color, devolver la palabra «ninguno». . Steve prefiere no usar una macro para hacer esto.
Desafortunadamente, no hay forma de realizar esta tarea de manera aceptable sin usar macros, de una forma u otra. La solución no macro más cercana es crear un nombre que determine los colores, de esta manera:
-
Seleccione la celda A1.
-
Haga clic en Insertar | Nombre | Definir. Excel muestra el cuadro de diálogo Definir nombre.
-
Utilice un nombre como «mycolor» (sin las comillas).
-
En el cuadro Se refiere a, ingrese lo siguiente, como una sola línea:
-
Haga clic en Aceptar.
Con este nombre definido, puede, en cualquier celda, ingresar lo siguiente:
=mycolor
El resultado es que verá texto basado en el color de la celda en la que coloca esta fórmula. El inconveniente de este enfoque, por supuesto, es que no le permite hacer referencia a celdas distintas de aquella en la que se coloca la fórmula.
La solución, entonces, es usar una función definida por el usuario, que es (por definición) una macro. La macro puede verificar el color con el que se llena una celda y luego devolver un valor. Por ejemplo, el siguiente ejemplo devuelve una de las tres palabras, según el color de una celda de destino:
Function CheckColor1(range) If range.Interior.Color = RGB(256, 0, 0) Then CheckColor1 = "Stop" ElseIf range.Interior.Color = RGB(0, 256, 0) Then CheckColor1 = "Go" Else CheckColor1 = "Neither" End If End Function
Esta macro evalúa los valores RGB de los colores en una celda y devuelve una cadena basada en esos valores. Podrías usar la función en una celda de esta manera:
=CheckColor1(B5)
Si prefiere verificar los colores del índice en lugar de los colores RGB, entonces funcionará la siguiente variación:
Function CheckColor2(range) If range.Interior.ColorIndex = 3 Then CheckColor2 = "Stop" ElseIf range.Interior.ColorIndex = 4 Then CheckColor2 = "Go" Else CheckColor2 = "Neither" End If End Function
Ya sea que esté utilizando el enfoque RGB o el enfoque de índice de color, querrá verificar para asegurarse de que los valores usados en las macros reflejen los valores reales usados para los colores en las celdas que está probando. En otras palabras, Excel le permite usar diferentes tonos de verde y rojo, por lo que querrá asegurarse de que los valores RGB y los valores de índice de color usados en las macros coincidan con los usados por los tonos de color en sus celdas.
Una forma de hacer esto es usar una macro muy simple que no hace más que devolver un valor de índice de color:
Function GetFillColor(Rng As Range) As Long GetFillColor = Rng.Interior.ColorIndex End Function
Ahora, en su hoja de trabajo, puede usar lo siguiente:
=GetFillColor(B5)
El resultado es que se muestra el valor del índice de color de la celda B5. Suponiendo que la celda B5 está formateada con uno de los colores esperados (rojo o verde), puede volver a insertar el valor del índice en las macros anteriores para obtener los resultados deseados. Sin embargo, puede simplemente omitir ese paso y confiar en el valor devuelto por GetFillColor para armar una fórmula IF, de esta manera:
=IF(GetFillColor(B5)=4,"Go", IF(GetFillColor(B5)=3,"Stop", "Neither"))
Deberá tener en cuenta que estas funciones (ya sea que observe los valores de color RGB o los valores del índice de color) examinan el formato explícito de una celda. No tienen en cuenta ningún formato implícito, como el que se aplica a través del formato condicional.
Para conocer otras buenas ideas, fórmulas y funciones sobre cómo trabajar con colores, consulte esta página en el sitio web de Chip Pearson:
http://www.cpearson.com/excel/colors.aspx
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (10780) se aplica a Microsoft Excel 2007 y 2010. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Colors_in_an_IF_Function [Colores en una función IF]
.