una - lista desplegable con colores excel
Cuente una lista de celdas con el mismo color de fondo (5)
Cada celda contiene algo de texto y un color de fondo. Así que tengo algunas celdas que son azules y algunas que son rojas. ¿Qué función uso para contar la cantidad de glóbulos rojos?
He intentado =COUNTIF(D3:D9,CELL("color",D3))
sin éxito (Donde D3
es rojo).
Acabo de crear esto y parece más fácil. Obtienes estas 2 funciones:
=GetColorIndex(E5) <- returns color number for the cell
de (célula)
=CountColorIndexInRange(C7:C24,14) <- returns count of cells C7:C24 with color 14
desde (rango de celdas, número de color que desea contar)
El ejemplo muestra el porcentaje de celdas con color 14
=ROUND(CountColorIndexInRange(C7:C24,14)/18, 4 )
Cree estas 2 funciones de VBA en un Módulo (presione Alt-F11)
abrir + carpetas. haga doble clic en Module1
Simplemente pegue este texto debajo, luego cierre la ventana del módulo (debe guardarlo luego):
Function GetColorIndex(Cell As Range)
GetColorIndex = Cell.Interior.ColorIndex
End Function
Function CountColorIndexInRange(Rng As Range, TestColor As Long)
Dim cnt
Dim cl As Range
cnt = 0
For Each cl In Rng
If GetColorIndex(cl) = TestColor Then
Rem Debug.Print ">" & TestColor & "<"
cnt = cnt + 1
End If
Next
CountColorIndexInRange = cnt
End Function
Excel no tiene forma de reunir ese atributo con sus funciones integradas. Si está dispuesto a usar algunos VB, todas sus preguntas relacionadas con el color se responden aquí:
http://www.cpearson.com/excel/colors.aspx
Ejemplo del sitio:
La función SumColor es un análogo basado en color de las funciones SUMA y SUMAR. Le permite especificar rangos separados para el rango cuyos índices de color se van a examinar y el rango de celdas cuyos valores se deben sumar. Si estos dos rangos son los mismos, la función suma las celdas cuyo color coincide con el valor especificado. Por ejemplo, la siguiente fórmula suma los valores en B11: B17 cuyo color de relleno es rojo.
=SUMCOLOR(B11:B17,B11:B17,3,FALSE)
La fórmula de la hoja de trabajo, =CELL("color",D3)
devuelve 1
si la celda está formateada con color para valores negativos (de lo contrario devuelve 0
).
Puedes resolver esto con un poco de VBA. Insertar esto en un módulo de código VBA:
Function CellColor(xlRange As Excel.Range)
CellColor = xlRange.Cells(1, 1).Interior.ColorIndex
End Function
Luego use la función =CellColor(D3)
para visualizar el .ColorIndex
de D3
Necesitaba resolver absolutamente la misma tarea. He dividido visualmente la tabla usando diferentes colores de fondo para diferentes partes. Buscando en Internet Encontré esta página https://support.microsoft.com/kb/2815384 . Desafortunadamente no resuelve el problema porque ColorIndex se refiere a un valor impredecible, por lo que si algunas celdas tienen matices de un color (por ejemplo, diferentes valores de brillo del color), la función sugerida los cuenta. La solución a continuación es mi solución:
Function CountBgColor(range As range, criteria As range) As Long
Dim cell As range
Dim color As Long
color = criteria.Interior.color
For Each cell In range
If cell.Interior.color = color Then
CountBgColor = CountBgColor + 1
End If
Next cell
End Function
Sí, VBA es el camino a seguir.
Pero, si no necesita tener una celda con fórmula que auto-cuente / actualice el número de celdas con un color particular, una alternativa es simplemente usar la función ''Encontrar y reemplazar'' y formatear la celda para tener el tamaño apropiado relleno de color
Al presionar ''Encontrar todo'', obtendrá el número total de celdas que se encuentran en la parte inferior izquierda del cuadro de diálogo.
Esto se vuelve especialmente útil si su rango de búsqueda es masivo. El script de VBA será muy lento, pero la función ''Buscar y reemplazar'' seguirá siendo muy rápida.