Clasificación por color de relleno (Microsoft Excel)
Chuck escribió sobre la necesidad que tiene de ordenar registros en una hoja de trabajo según el color de relleno utilizado en una celda. Excel no proporciona una función intrínseca para realizar tal acción, pero es posible crear una función definida por el usuario que ayudará con cualquier clasificación que deba realizarse. Considere la siguiente macro:
Function GetFillColor(rng As Range) As Long GetFillColor = rng.Interior.ColorIndex End Function
Suponiendo que los colores de relleno están en las celdas de la columna A, todo lo que necesita hacer es asegurarse de que haya una columna vacía B. Luego, coloque la siguiente fórmula en la celda B2 y cópiela para cada registro:
=GetFillColor(A2)
Cuando haya terminado, la columna B contendrá los valores de índice de cada color de relleno utilizado en la columna A. Luego, puede ordenar por la columna B, que tiene el resultado de agrupar todos los colores de relleno similares.
Si necesita ser más elaborado, por ejemplo, si necesita ordenar en un orden particular (amarillo primero, rojo segundo, verde tercero, etc.), entonces no puede confiar únicamente en el valor del índice del color de relleno. En tal caso, debe confiar en un método diferente para devolver un color.
Considere la siguiente macro:
Function GetColor(rngIndex As Range, rngSource As Range) As Long Dim lngColor As Long Dim J As Integer Application.Volatile lngColor = rngSource.Interior.ColorIndex GetColor = 99 'Set to default color For J = 1 To rngIndex.Count If rngIndex(J).Interior.ColorIndex = lngColor Then GetColor = J End If Next J End Function
Esta macro funciona de manera diferente a la anterior. Requiere dos rangos para funcionar correctamente. El primer rango es básicamente una tabla de colores que indica el orden en el que desea ordenar los colores. Por ejemplo, las celdas E1 a E9 podrían contener los nueve colores que desea usar para clasificar, en el orden en que desea clasificarlos. Luego, colocaría la siguiente fórmula en la celda B2 y la copiaría para cada registro:
=GetColor($E$1:$E$9,A2)
El resultado es que la columna B contendrá los valores del 1 al 9, que representan los colores en su tabla de colores. Si el color en una celda no tiene un color correspondiente en la tabla de colores, entonces la función devuelve el valor de 99. Cuando ordena los registros en su tabla, termina ordenándolos como desee.
_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 (2009) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.