Cómo Contar o Sumar Celdas con Cierto Color en Excel
Descargar el Libro de Ejemplo
Este tutorial le mostrará cómo contar o sumar celdas de un determinado color de fondo utilizando VBA.
Considere el siguiente rango en Excel.
No existe una función incorporada en Excel para contar celdas de color. En su lugar debemos crear una Función Definida por el Usuario utilizando VBA.
Contar Celdas – Crear una Función Personalizada VBA
Contar cuántas celdas son de un determinado color utilizando VBA es cuestión de crear una función definida por el usuario (UDF) que recorrerá todas las celdas del rango, y determinará si el color de fondo de cada celda coincide con el color de fondo que está probando, y luego utilizar esa función en la hoja de cálculo de Excel.
En VBA, creamos una función para contar las celdas seleccionadas.
Function ContarCeldasPorColor(rng As Range, ColorCell As Range) As Double
Dim dblCount As Double
Dim rngCell As Range
'Recorrer cada celda del rango
For Each rngCell In rng
'comprueba si el color interior es el mismo que el de la celda seleccionada
If rngCell.Interior.Color = ColorCell.Interior.Color Then
If IsNumeric(rngCell.Value) = True Then
dblCount = dblCount + 1
End If
End If
Next
'Devuelve el valor a Excel
ContarCeldasPorColor = dblCount
End Function
A continuación, utilice esta función en la hoja de cálculo para devolver el valor.
=ContarCeldasPorColor(B3:E11;G5)
- Haz clic en la celda naranja en G5, y haz clic en Insertar Función.
- Selecciona Definido por el Usuario como la categoría, y luego selecciona ContarCeldasPorColor como la función a utilizar.
- Haz clic en Aceptar.
- Resalte el rango que contiene todas las celdas coloreadas.
- Seleccione la Celda De Color (ColorCell), y luego haga clic en Aceptar.
Repita el proceso para Contar las celdas con un color de Fondo Verde.
=ContarCeldasPorColor(B3:E11;G6)
Sumar Celdas – Crear una Función VBA Personalizada
Creamos una función personalizada similar en VBA para sumar los valores de las celdas de un determinado color.
Function SumarCeldasPorColor(rng As Range, ColorCell As Range) As Double
Dim dblSum As Double
Dim rngCell As Range
'Recorrer cada celda del rango
For Each rngCell In rng
'comprueba si el color interior es el mismo que el de la celda seleccionada
If rngCell.Interior.Color = ColorCell.Interior.Color Then
If IsNumeric(rngCell.Value) = True Then
dblSum = dblSum + rngCell.Value
End If
End If
Next
'Devuelve el valor a Excel
SumarCeldasPorColor = dblSum
End Function
A continuación volveríamos a utilizar esta función en la Hoja de Cálculo para sumar las celdas necesarias.
=SumarCeldasPorColor(B3:E11;G8)