Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EN EXCEL
El color de relleno de una celda es ampliamente utilizado por los usuarios de
Excel ya que, al resaltarla con un color diferente, podremos identificarla
fácilmente en pantalla.
En ocasiones el color significará que el dato pertenece a alguna categoría
específica, o tal vez algún estatus o acción que debemos tomar basados en dicho
color. El asunto es que, cuando tenemos varias celdas con un color de relleno,
es casi inevitable que llegue el momento en que necesitemos contarlas por color.
La mayoría de los usuarios buscan de inmediato alguna función de Excel que les
ayude a contar por color, pero pronto se encuentran con que no existe una
función que haga dicha tarea.
Construir una nueva función no es cosa de novatos, pero tampoco es una tarea
de altísima complejidad, así que en esta ocasión te mostraré los pasos
necesarios para que puedas crear esa función que cuente las celdas por color.
Lo primero que debes saber es que será necesario utilizar programación VBA
para crear la nueva función. Pero no te preocupes si no sabes programar, ya que
te mostraré cada una de las acciones a tomar.
Página 1 de 8
4 'Variables
5 Dim celda As Range
6
'Recorremos todas las celdas del rango
7 For Each celda In rango
8
9 'Compara la propiedad Interior.Color
10 If celda.Interior.color = celdaOrigen.Interior.color Then
11 CONTARCOLOR = CONTARCOLOR + 1
End If
12
13 Next celda
14
15 End Function
16
17
18
Después de copiar el código deberás abrir el Editor de Visual Basic, y para eso
tienes dos opciones:
Pulsar el atajo de teclado ALT + F11
Hacer clic en el botón Visual Basic de la pestaña Programador
Una vez que se abre la ventana del Editor de Visual Basic, deberás hacer clic en
en el menú Insertar > Módulo.
Página 2 de 8
Con estos pasos hemos creado y habilitado la nueva función que lleva por
nombre CONTARCOLOR y cuyo uso explicaré a continuación.
La siguiente imagen muestra las celdas del rango A1:A10 con diferentes colores
de relleno y la celda D1 que tiene el color azul el cual nos interesa contar.
Página 3 de 8
Para contar las celdas de color azul en el rango A1:A10, debo utilizar la función
CONTARCOLOR de la siguiente manera:
=CONTARCOLOR(D1, A1:A10)
El primer argumento es la celda que contiene el color que estamos buscando y
el segundo argumento es el rango de celdas. Ingresaré la fórmula anterior en la
celda D2 y al pulsar Entrar obtendremos el siguiente resultado:
Página 4 de 8
No es indispensable tener una celda diferente para especificar el color que
deseamos contar. He utilizado la celda D1 solo para ejemplificar el uso de los
dos argumentos, pero nada impide que utilicemos una celda dentro del rango
como el primer argumento. Considera la siguiente fórmula:
=CONTARCOLOR(A2, A1:A10)
En este caso, la celda A2 tiene el color azul que queremos contar, así que
podemos indicar dicha celda como el primer argumento de la función y el
resultado será el mismo.
Página 5 de 8
El uso de esta función es muy simple y solo deberás asegurarte de indicar en su
primer argumento una celda que tenga el color que te interesa contar. Recuerda
que Excel tiene una gama de millones de colores y por lo tanto debes tener
mucho cuidado ya que podrías ver en pantalla colores muy parecidos cuando en
realidad son distintos.
Página 6 de 8
anteriores y la explicación detallada la encontrarás en la última sección de
este artículo.
El color que estamos evaluando es el color que se aplica a una celda con
el comando Color de relleno y no nos referimos al color de formato
condicional el cual requiere de un código VBA diferente y por lo tanto será
tratado en otra publicación.
A continuación, explicaré con mayor detenimiento el código de la función para
aquellos usuarios que están interesados en el tema de la programación en Excel.
Application.Volatile
Esta instrucción es muy conveniente ya que ocasiona que el resultado de la
función sea actualizado automáticamente al momento de realizar un cambio de
color en las celdas. En la siguiente línea tenemos la declaración de la
variable celda que nos ayudará al momento de recorrer el rango evaluado.
Utilizamos el bucle For Each para recorrer cada una de las celdas del rango y
puedes notar que la instrucción hace referencia a la variable rango que es el
segundo argumento de la función.
For Each celda In rango
Por último, tenemos la instrucción más importante de la función y es la
comparación de los colores. El color de relleno está almacenado en la
propiedad Interior.color y por esa razón se hace la comparación del color de la
celda original y el color de la celda del rango que estamos evaluando.
If celda.Interior.color = celdaOrigen.Interior.color Then
Si los valores de las propiedades son iguales, quiere decir que los colores son
iguales y por lo tanto aumentamos el valor de CONTARCOLOR en uno.
CONTARCOLOR = CONTARCOLOR + 1
De esa manera recorremos todas las celdas del rango y tendremos el resultado
final en CONTARCOLOR cuyo valor es devuelto automáticamente por la función
por tener el mismo nombre.
Página 7 de 8
LA PROPIEDAD INTERIOR.COLOR
Antes de terminar la explicación del código VBA debo decir que la
propiedad Interior.color está disponible a partir de Excel 2007, así que esta
macro no funcionará para versiones anteriores.
A partir de Excel 2007 tenemos millones de colores disponibles para elegir el
color de relleno de una celda, pero eso no era posible anteriormente. En Excel
2003 y versiones previas solo era posible elegir entre una paleta de 56 colores y
dicho color era almacenado en la propiedad Interior.ColorIndex.
A partir de Excel 2007 se creó la propiedad Interior.color ya que era imposible
almacenar millones de colores en la propiedad Interior.ColorIndex que se
utilizaba anteriormente. Por esa razón el código de nuestra función no trabajará
en Excel 2003 y versiones anteriores a menos que cambies la propiedad
utilizada.
Espero que esta función sea de mucha utilidad para esos casos en los que
necesites contar las celdas por color en Excel.
Página 8 de 8