Contar por color de relleno en Excel

Código de la función

Function CONTARCOLOR(celdaOrigen As Range, rango As Range)
    
    Application.Volatile
    
    'Variables
    Dim celda As Range
             
    'Recorremos todas las celdas del rango
    For Each celda In rango
        
        'Compara la propiedad Interior.Color
        If celda.Interior.color = celdaOrigen.Interior.color Then
            CONTARCOLOR = CONTARCOLOR + 1
        End If
        
    Next celda

End Function

TRANSCRIPCIÓN DEL VÍDEO

En esta hoja tengo un rango de celdas con diferentes colores de relleno y me interesa contar el número de celdas de color azul.

¿Existirá alguna función de Excel que me ayude con esta tarea?

Es un hecho que muchos usuarios se enfrentan con una situación similar e intentan encontrar alguna función de Excel que les pueda ayudar, pero la realidad es que no existe ninguna función que pueda contar las celdas por color.

Ninguna de las funciones predeterminadas de Excel es capaz de evaluar alguna propiedad de formato.

Todas las funciones incluidas en Excel trabajan con los valores de una celda y jamás podrás acceder a las propiedades de formato.

Sin embargo, es posible crear nuestra propia función que nos ayude a contar por el color de relleno de una celda, y aunque me refiero a la creación de una función con código VBA, en esta ocasión te mostraré una serie de pasos muy sencillos que deberás dar para utilizar esta función aún cuando no seas un programador de Excel.

Debajo de este vídeo encontrarás el código completo que debes copiar, así que el primer paso será copiar dicho código y enseguida debemos abrir un programa conocido como el Editor de Visual Basic.

Para abrir ese programa puedes pulsar la combinación de teclas Alt+F11 o en caso de que tengas habilitada la pestaña Programador, podrás pulsar el botón Visual Basic.

Una vez que hemos abierto el Editor deberás ir al menú Insertar y elegir la opción Módulo y enseguida verás que el panel izquierdo mostrará el módulo de código recién creado.

Seleccionamos el módulo y en el panel derecho pegaremos el código de copiamos anteriormente, así que pulsaré la combinación Ctrl+V para efectuar el pegado y eso es todo.

Con esto hemos creado nuestra nueva función que tienen por nombre CONTARCOLOR.

Ahora regresaremos a Excel para probar su funcionamiento.

Si en tu pantalla observas la ventana de Excel por detrás del Editor de Visual Basic, entonces puedes hacer clic sobre la ventana de Excel para activarla o también podemos regresar pulsando el botón Ver Excel que se encuentra en la barra de herramientas.

En la celda D2, ingresaré el símbolo igual y en seguida el nombre CONTARCOLOR y abro paréntesis.

El primer argumento de esta función es la referencia a una celda que tenga el color que queremos contar y en este caso tengo la celda D1 que tiene el color azul y por lo tanto ingresaré la referencia a esa celda.

El segundo argumento de la función es el rango que contiene las celdas que queremos evaluar, así que ingresaré el rango A1:A10 y finalmente cerraré el paréntesis de la función.

Al pulsar la tecla Entrar, obtendré el valor cuatro, que es precisamente la cantidad de celdas que son de color azul.

Si quiero contar las celdas amarillas, solamente debo ir a la pestaña Inicio y copiar el formato de las celdas A3 y pegarlo en la celda D1 y de inmediato la función CONTARCOLOR me devolverá la cantidad de celdas con dicho color.

En este ejemplo he utilizado la celda D1 para indicar el color que quiero contar y es muy conveniente en caso de que querer elegir un color diferente.

Sin embargo, también es posible indicar una de las celdas dentro del rango que estamos evaluando.

Activaré la Hoja2 de este libro que tiene el mismo rango de celdas que la hoja anterior y en la celda D1 ingresaré el símbolo igual y el nombre de la función CONTARCOLOR.

En esta ocasión queremos contar las celdas de color verde, así que para el primer argumento de la función ingresaré la referencia a la celda A1 porque esa celda es del color que queremos contar y como segundo argumento ingresaré la referencia A1:A10 que se refiere a todo el rango evaluado.

Al pulsar Entrar, obtendré el número cuatro, que es la cantidad de celdas de color verde dentro del rango A1:A10.

Cómo contar celdas por color en Excel

Puedes utilizar cualquiera de los dos métodos que he mostrado anteriormente y solo dependerá de tus preferencias.

Es muy importante que, al guardar el archivo, lo hagas como un libro habilitado para macros ya que, si lo guardas como cualquier otro libro de Excel, perderás el código de la función que hemos creado.

Con esto hemos terminado con la creación de la función y sus ejemplos de uso.

A continuación, explicaré el código VBA para aquellos usuarios que están familiarizados con la programación en Excel.

Activaré la pestaña Programador y pulsaré el botón Visual Basic para regresar al Editor de código y lo primero que quiero que observes es la declaración de los argumentos de la función.

En este caso estoy utilizando dos argumentos del tipo Range. El primer argumento recibe la referencia a la celda de origen la cual tiene el color que vamos a contar y el segundo argumento es la referencia al rango de celdas evaluado.

En seguida puedes ver la instrucción Application.Volatile que nos ayuda a que esta función sea volátil, lo que quiere decir que el resultado de la función se actualizará automáticamente al momento de realizar un cambio de color en las celdas de la hoja.

Posteriormente tenemos la definición de la variable celda, que nos ayudará a acceder las propiedades de cada una de las celdas dentro del bucle For-Each el cual observas a continuación.

Este bucle es el encargado de recorrer todas las celdas en el rango que hemos indicado como el segundo argumento de la función.

Dentro del bucle For-Each se encuentra la instrucción más importante de nuestra función y es la comparación de los colores.

Por un lado, tenemos el color de la celda que pertenece al rango evaluado y por el otro el color de la celda origen que es el primer argumento de la función y que contiene el color que queremos contar.

Si ambos colores son iguales, entonces se aumentará el valor de la variable CONTARCOLOR y dicho valor será aumentado cada vez que ambas celdas tengan el mismo color.

Así que, cuando el bucle termine de recorrer el rango, tendremos la cuenta final.

La función devolverá automáticamente el valor almacenado en la variable CONTARCOLOR porque tiene el mismo nombre de la función y de esa manera obtendremos la cuenta final en la celda de nuestra hoja.

Finalmente te recomiendo leer con detenimiento el artículo que acompaña a este tutorial ya que ahí explicaré algunos detalles adicionales sobre el código de esta función, así como algunas restricciones que deberás de tomar en cuenta.