prucommercialre.com


Colores en una función SI

Steve le gustaría crear una instrucción IF (usando la función de hoja) basado en el color de una celda. Por ejemplo, si A1 tiene un relleno verde, quiere devolver la palabra "go", si cuenta con un relleno rojo, quiere devolver la palabra "stop", y si se trata de cualquier otro color devolver la palabra "ni" . Steve prefiere no utilizar una macro para hacer esto.

Desafortunadamente, no hay manera de lograr aceptablemente esta tarea sin necesidad de usar macros, en una forma u otra. La solución no macro más cercano es el de crear un nombre que determina los colores, de esta manera:

  1. Seleccione la celda A1.
  2. Haga clic en Insertar | Nombre | Definir. Excel muestra el cuadro de diálogo Definir nombre.
  3. Utilice un nombre como "MyColor" (sin las comillas).
  4. En el cuadro se refiere a, escriba la siguiente, como una sola línea:

    = SI (GET.CELL (38, Hoja1! A1) = 10, "GO", IF (GET.CELL (38, Hoja1! A1)
    = 3, "Stop", "Ni"))

  5. Haga clic en Aceptar.

Con este nombre definido, puede, en cualquier celda, escriba lo siguiente:

= MyColor

El resultado es que usted verá el texto basado en el color de la celda en la que se coloca esta fórmula. El inconveniente de este enfoque, por supuesto, es que no permite hacer referencia a células distintas de aquella en la que se coloca la fórmula.

La solución es, entonces, utilizar una función definida por el usuario, que es (por definición) una macro. La macro puede comprobar el color con el que se llena una celda y luego devolver un valor. Por ejemplo, el siguiente ejemplo devuelve uno de los tres palabras, basándose en el color en una célula diana:

Función CheckColor1 (rango)
Si range.Interior.Color = RGB (256, 0, 0) Entonces
CheckColor1 = "Stop"
ElseIf range.Interior.Color = RGB (0, 256, 0) Entonces
CheckColor1 = "Ir"
Más
CheckColor1 = "Ninguno"
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. Usted podría utilizar la función en una celda de esta manera:

= CheckColor1 (B5)

Si prefiere comprobar los colores de índice en lugar de los colores RGB, entonces la variación siguiente funcionará:

Función CheckColor2 (rango)
Si range.Interior.ColorIndex = 3 Entonces
CheckColor2 = "Stop"
ElseIf range.Interior.ColorIndex = 14 Entonces
CheckColor2 = "Ir"
Más
CheckColor2 = "Ninguno"
End If
End Function

Si usted está utilizando el enfoque RGB o el enfoque de índice de color, tendrá que comprobar para asegurarse de que los valores utilizados en las macros reflejan los valores reales utilizados por los colores de las celdas que está probando. En otras palabras, Excel le permite utilizar diferentes tonos de verde y rojo, por lo que querrá asegurarse de que los valores RGB y los valores de índice de color utilizados en las macros coinciden con los utilizados por los tonos de color en sus células.

Una forma de hacer esto es usar una macro muy simple que no hace más que devolver un valor de índice de color:

Función GetFillColor (RNG como gama) As Long
GetFillColor = Rng.Interior.ColorIndex
End Function

Ahora, en su hoja de cálculo, puede utilizar el siguiente:

= GetFillColor (B5)

El resultado es que aparezca el valor de índice de color de la celda B5. Suponiendo que la celda B5 se formatea usando uno de los colores que usted espera (rojo o verde), puede conectar el valor del índice de nuevo en las macros anteriores para obtener los resultados deseados. Usted simplemente puede saltarse este paso, sin embargo, y se basan en el valor devuelto por GetFillColor para armar una fórmula IF, de esta manera:

= SI (GetFillColor (B5) = 14, "Go", IF (GetFillColor (B5) = 3, "Stop", "Ni"))

Usted querrá tener en cuenta que estas funciones (si nos fijamos en los valores de color RGB o los valores del índice de color) examinan el formato explícita de una célula. No toman en cuenta ningún tipo de formato implícita, como la que se aplica a través de un formato condicional.

Para algunas otras buenas ideas, fórmulas y funciones para trabajar con colores, consulte esta página en el sitio web de Chip Pearson:

http://www.cpearson.com/excel/colors.aspx

ExcelTips es su fuente de capacitación rentable Microsoft Excel. Esta punta (10.779) se aplica a Microsoft Excel 97, 2000, 2002, y 2003. Usted puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y versiones posteriores) aquí: Colores en una función SI.