Vous êtes sur la page 1sur 20

Contar celdas por color 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 fcilmente en pantalla.

En ocasiones el color significar que el dato pertenece a alguna


categora especfica, o tal vez algn estatus o accin 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 mayora de los usuarios buscan de inmediato alguna funcin de Excel


que les ayude a contar por color, pero pronto se encuentran con que no
existe una funcin que haga dicha tarea.

Y es que, ninguna de las funciones de Excel puede acceder a la


informacin de formato de una celda. No existen funciones para saber si
la letra es negrita, o para conocer el tipo de fuente utilizada, as que
tampoco existe una funcin para conocer el color de la fuente o el color
de relleno de una celda.

Cuando me refiero a que no existen funciones de este tipo, me refiero a


las funciones provistas de manera predeterminada por Excel. Sin
embargo, es posible construir nuestra propia funcin que nos ayude a
contar las celdas por color.

Construir una nueva funcin no es cosa de novatos, pero tampoco es


una tarea de altsima complejidad, as que en esta ocasin te mostrar
los pasos necesarios para que puedas crear esa funcin que cuente las
celdas por color.

Descargar libro de trabajo

Lo primero que debes saber es que ser necesario utilizar programacin


VBA para crear la nueva funcin. Pero no te preocupes si no sabes
programar, ya que te mostrar cada una de las acciones a tomar.

Cdigo VBA para contar por color


El cdigo VBA de la funcin ya lo he programado con anterioridad y lo
encuentras a continuacin, as que solo debers copiarlo y pegarlo en el
lugar adecuado.

1 Function CONTARCOLOR(celdaOrigen As Range, rango As Range)

2
Application.Volatile
3

4
'Variables
5
Dim celda As Range
6

7
'Recorremos todas las celdas del rango
8
For Each celda In rango
9

10 'Compara la propiedad Interior.Color


11 If celda.Interior.color = celdaOrigen.Interior.color Then
12 CONTARCOLOR = CONTARCOLOR + 1

13 End If

14
Next celda
15

16
End Function
17

18

Despus de copiar el cdigo debers abrir el Editor de Visual Basic, y


para eso tienes dos opciones:

Pulsar el atajo de teclado ALT + F11


Hacer clic en el botn Visual Basic de la pestaa Programador

Una vez que se abre la ventana del Editor de Visual Basic, debers hacer
clic en en el men Insertar > Mdulo.

Se insertar un nuevo mdulo de cdigo, que llevar un nombre


como Mdulo1, y en el panel de la derecha debers pegar el cdigo de la
funcin tal como lo muestra la siguiente imagen:
Con estos pasos hemos creado y habilitado la nueva funcin que lleva
por nombre CONTARCOLOR y cuyo uso explicar a continuacin.

Ejemplo para contar celdas por color


La funcin CONTARCOLOR tiene dos argumentos, el primero de ellos es
la referencia a una celda que tendr el color de relleno que queremos
contar y el segundo argumento es el rango con las celdas que vamos a
evaluar.

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.
Para contar las celdas de color azul en el rango A1:A10, debo utilizar la
funcin 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
frmula anterior en la celda D2 y al pulsar Entrar obtendremos el
siguiente resultado:
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
frmula:

=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 funcin
y el resultado ser el mismo.
El uso de esta funcin es muy simple y solo debers 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 podras ver en
pantalla colores muy parecidos cuando en realidad son distintos.

Consideraciones sobre la nueva funcin


Para terminar la explicacin de esta nueva funcin quiero mencionar
algunas consideraciones importantes que debers recordar en todo
momento:

El libro donde se encuentra la nueva funcin deber guardarse


como un Libro habilitado para macros o de lo contrario perders la
funcionalidad.
La funcin que acabamos de crear solo puede ser utilizada en el
libro de Excel donde has copiado el cdigo. Si quieres utilizar la
funcin en otro libro, entonces debers copiar de nuevo el cdigo
en dicho libro. Existen mtodos para hacer que una funcin de este
tipo est disponible en todos los libros del equipo, pero eso ser un
tema para otra publicacin.
Esta funcin solo trabajar adecuadamente en Excel 2007 y
versiones posteriores. Lamentablemente no funcionar en Excel
2003 o versiones anteriores y la explicacin detallada la
encontrars en la ltima seccin de este artculo.
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 cdigo VBA diferente
y por lo tanto ser tratado en otra publicacin.

A continuacin, explicar con mayor detenimiento el cdigo de la funcin


para aquellos usuarios que estn interesados en el tema de la
programacin en Excel.

Explicacin del cdigo VBA de la funcin


He decidido incluir esta seccin para aquellos que estn un poco ms
familiarizados con la programacin en Excel y quieren leer una
explicacin ms detallada sobre el cdigo de la funcin UDF que
acabamos de crear.

En primer lugar, tenemos la declaracin de la funcin la cual acepta dos


argumentos, celdaOrigen y rango.

Function CONTARCOLOR(celdaOrigen As Range, rango As Range)

Ambos argumentos son del tipo Range ya que el primer argumentos


tendr una referencia a la celda que tiene el color que vamos a contar y
el segundo argumento ser la referencia al rango que ser evaluado.

La siguiente lnea de cdigo es una instruccin que se utiliza para marcar


una funcin como voltil, lo cual quiere decir que la funcin ser
recalculada cada vez que se efecta un clculo en la hoja.

Application.Volatile

Esta instruccin es muy conveniente ya que ocasiona que el resultado de


la funcin sea actualizado automticamente al momento de realizar un
cambio de color en las celdas. En la siguiente lnea tenemos la
declaracin 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 instruccin hace referencia a la
variable rango que es el segundo argumento de la funcin.

For Each celda In rango

Por ltimo, tenemos la instruccin ms importante de la funcin y es la


comparacin de los colores. El color de relleno est almacenado en la
propiedad Interior.color y por esa razn se hace la comparacin 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
automticamente por la funcin por tener el mismo nombre.

La propiedad Interior.color
Antes de terminar la explicacin del cdigo 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
razn el cdigo de nuestra funcin no trabajar en Excel 2003 y
versiones anteriores a menos que cambies la propiedad utilizada.

Espero que esta funcin sea de mucha utilidad para esos casos en los
que necesites contar las celdas por color en Excel.

Publicado por Moiss Ortz.

78 comentarios en Contar celdas por color en


Excel
1. Jos vivas

Excelente, hace un tiempo que necesitaba est funcin y an ms


para contar formatos condicionales con imgenes como o barras.
Graciasssss

1. Moises Ortiz Autor


Hola Jos, tal como lo describo en el artculo, esta funcin
NO servir para contar por colores de formato condicional.
Slo es til para contar por colores que se han aplicado con
el comando Color de relleno.

2. lvaro g

Excelente artculo. Me sirvi para un trabajo que estoy realizando

3. Carlos

Muy bueno, esto demuestra la creatividad y flexibilidad que


podemos dar a nuestro trabajo.

4. Jos MRC

Espectacular. Muy ltil. Podran sacar tambin una para SUMAR


el contenido de las celdas de un mismo color?

1. Moises Ortiz Autor

Puedes convertir esta funcin en una suma con tan solo


cambiar una lnea de cdigo. Encuentra la siguiente lnea:
CONTARCOLOR = CONTARCOLOR + 1

Debers reemplazarla por:


CONTARCOLOR = CONTARCOLOR + celda.Value

5. Rosana

Muy bueno!!! Excelente sitio de consulta y aprendizaje!

6. Roberto M.

Excelente de muy buen uso.

7. Daniel

Muy bueno me ayud en mi trabajo

8. PaC
Muy buen artculo. Me gustara ms artculos tan buenos y
novedosos como este.

9. Jos Luis

Visualiza nuevos horizontes de uso

10. JOSE AUGUSTO SILVA BARANDIARAN

Excelente, necesitaba utilizarla porque trabajo con informaciones


que se programan y despus van llegando pero no en forma
continua sino aleatoria y se necesita saber cuantas faltan en
determinada fecha. Te agradecer proporcionarme informacin de
contar pero por color de fuente.

11. Devid

Muy buen trabajo lo estoy poniendo en prctica..

12. Misael

Muchas gracias, me ayud mucho en el trabajo.

13. Omar Vzquez

Muy buen consejo, ser de mucha utilidad para mi trabajo diario.


muchas gracias por estos trucos.

14. Luis

Excelente articulo, gracias, me sirve mucho

15. Pablo

Excelente! Muchas Gracias por su ayuda

16. Manuel Torres

Excelente funcin y muy prctica, gracias por comaprtirla!!!

17. Jesus Camero


Muy buena la explicacion, yo trababjo mucho con colores en celdas
para controlar los tipos de dotacion del personal.

18. Oscar

Excelente artculo, muy til. Sera muy bueno que por favor,
incluyeras la funcin de contarcolor para formato condicional.
Gracias.

19. Libardog...

Eres un genio Gracias Moises

20. Victor Flores

Me Parece muy interesante y practica esta funcin de contar color


y la explicacin muy sencilla de aprender y captar los
procedimientos de forma analitica y no de forma mecanica.
Felicitaciones por su excelente trabajo y estoy agradecido por su
aporte al aprendizaje de esta valiosa herramienta de Excel.

21. Rubn Reyes R.

muy interesante el tema de los colores y su aplicacin

22. Luis Carren

EXCELENTE TUTORIAL, TU EXPLICACIN DE MARAVILLA,


GRACIAS POR EL APORTE.

23. Jose Manuel

Que maravilla, estoy encantado y deseando que saques la versin


con colores de los formatos condicionales.

24. Zera

Muy bueno. Siempre espero la publicacion de un nuevo tp de


Excel para seguir aprendiendo. Este me es muy til para mis
tareas. Gracias Moiss.

25. Jos Jess


Excelente herramienta, me sirvi para un trabajo que estoy
realizndo

26. thalia

muy interesante me ayudo en mucho!

27. Ma. Luca Duque

Hola buenos das.gracias por este maravilloso vdeo eres genial


muchas gracias chao hasta la proxima

28. David Santiago

Entendido y claro. Muchas gracias Moiss por transmitir este


conocimiento prctico para beneficio de todos, es muy loable de tu
parte. Excelente aporte!
Una humilde opinin: para el caso de sumar el contenido de celda
con colores es bueno cambiar el cdigo y por ende la funcin, el
cual podra ser SUMARCOLOR, as aprovechamos las dos.

29. Hernan

Prctico y til, especialmente cuando se trabaja con volmenes


grandes de datos

30. Javier con Office 2000

Hola. Y para los que tenemos un Office 2003 o inferior (2000 en


mi trabajo)? Sera cambiar solo donde pone Interior.color por
Interior.ColorIndex? Me d que es ms complejo Saludos y
gracias.

1. Moises Ortiz Autor

Javier, con ese cambio debera ser suficiente.

31. Argimiro Yangua

Excelente articulo, me sirvi de mucha utilidad, gracias

32. OCTAVIO
EXCELENTE APORTACION Y MUY UTIL.. GRACIAS
MOISS.

33. Luis Fonsaca

Excelente ejemplo, sigo aprendiendo Visual Basic gracias por esta


buena idea Saludos

34. Toribio

Gracias, es un excelente ejemplo.

35. Manaury Paulino Aybar

MUY BUENA LA OBSERVACIN. PARA ESTO ES


OBLIGATORIO SABER DE PROGRAMACIN. PORQUE SIN EL
CDIGO NO ES POSIBLE REALIZAR LA TAREA.

36. Oscar

La funcin es efectiva y sencilla, gracias

37. Andrs bl

Me parece muy buena pero si seria interensante que publicaran


una que sirva para contar un determinado tipo de formato
condicional

38. julio

muy bueno el tutorial muchas gracias me sirvi para mi trabajo

39. Rugal

Moises GENIAL Excelente y didctico aporte. Realizar los


cambios en los cuadros de mantencion de datos. Esta formula me
ahorrara + del 50% del tiempo en cada actualizacin. Gracias.

40. Huasho

Excelente aportacin. Nos proporcionas muchas cosas de utilidad.


Saludos
41. Javier con Office 2000

Javier con Office 2000: Hola. Y para los que tenemos un Office
2003 o inferior (2000 en mi trabajo)? Sera cambiar solo donde
pone Interior.color por Interior.ColorIndex? Me d que es ms
complejo Saludos y gracias.

Resp. Moises Ortiz (Autor): Javier, con ese cambio debera ser
suficiente.

CORRECTO, funciona perfectamente

42. ricardo argueyes

Muy buena la explicacin sobre la function contarcolor, gracias


moiss por todo lo que nos das. Saludos de Ricardo.

43. Ruben

Como siempre muy tiles tus publicaciones, nos ayuda muchsimo


en nuestro trabajo.Muchas gracias

44. Welner

Es lo que necesitaba para completar mis tareas! Gracias mil

45. Luis Hernando

Excelente funcin. es muy util

46. Hctor Cabrera Becerra

El separador entre el argumento a buscar y el rango es ; y no ,


como aparece en el insgtructivo

1. Moises Ortiz Autor

Hola Hctor, gracias por tu comentario pero eso no es un


error.
El uso de la coma (,) o del punto y coma (;) depende de la
configuracin regional del equipo.

47. Daniel
Excelente articulo y gracias por explicar la programacion

48. CLAUDIA ALEJANDRA CASTILLO CHAVARRO

Excelente Moiss, muchas gracias por compartirnos tus


conocimientos.

49. IGNACIO

MUCHAS GRACIAS DE NUEVO MOI POR TUS GRANDES


APORTACIONES A LA COMUNIDAD CONTABLE Y
ADMINSTRATIVA. QUE TENGAS UN EXCELENTE DIA.

50. JOSE JAIRO OCAMPO F

Excelente opcin. uso mucho la colores en Excel para identificar


datos estadsicos. Mucho me pregunt por una opcin de esta
clase.
Gracias Moiss.

51. Luis Maran

Excelente lo voy aplicar con mis alumnos Gracias Mil.

52. Eduardo Garca

Agradezco tu apoyo al proporcionarnos herramientas que facilita


nuestro trabajo.

53. Rafael feliz

tremendo apoyo no sabia nada de excel mil gracias por la ayuda

54. Rafael

Gracias por introducir esta macro (cdigo VBA), para que nosotros
nos aprovechemos de ella.

55. Ftima

Excelente articulo. Gracias por compartir tus conocimientos.

56. Jorge Ramirez


Gracias amigo por toda la informacion que envias, me ha servido
de mucho, porque soy un principiante

57. Jorge

No esperaba contar por color. Novedoso.


Gracias

58. Vernica

Excelente! En la pc que estoy utilizando funcion bien, a pesar de


tener instalado Excel 2003. Slo tuve que cambiar la seguridad de
macros a travs de la siguiente ruta: Herramientas -> Opciones ->
Pestaa seguridad -> Botn Seguridad de macros-> Nivel de
seguridad -> Bajo -> Aceptar -> Aceptar Guardar -> Cerrar el
programa -> Volv a abrir el archivo y listo. Con la funcin voltil es
con la que no tuve mucha suerte porque no actualiza
automticamente sino que me tengo que meter en la frmula y
teclear enter cuando cambio algo en el rango. Igual un milln de
gracias. Saludos

59. Alfredo Mrquez

EXCELENTE INFORMACIN Y ADEMAS PRACTICA,GRACIAS

60. Julio Obregon

Es una funcin que que sirve de mucha ayuda. Excelente muchas


gracias por tu valioso aporte.

61. Doris Bedoya

Hago cosas de la oficina en excel, aunque no muy avanzadas y no


imagine que fuera tan facil. Gracias

62. JOSE MANUEL AGNDIS

Buen trabajo y aportacin estimado Moiss.

63. Edgardo

Gracias por tu invalorable aportes de tus conocimientos, lo bueno


de que aclaras nuestras dudas Muy bueno !!! Saludos
64. ARLEX FALLA

Muchas gracias por los datos, son excelentes.

65. Juan Carlos S

Moises sos un campeon de Excel. Dime si existe alguna manera de


que la macro se ajsute para que funcione con formatos
condicionales. Seria muy pero muy util. Yo intente hacerlo colocand
las mismas reglas condicoinales tanto al rango como a la celda de
referencia y la formula cuenta todos los datos del rango.

1. Moises Ortiz Autor

Juan, el cambio es simple pero no es obvio. No puedo


explicarte el detalle de la macro en este comentario, pero
puedo decirte que el color de formato condicional se
almacena en la propiedad Interior.Color de la coleccin
FormatConditions de un objeto Range:
FormatConditions(i).Interior.Color
Debes recorrer dicha coleccin para conocer el color de
formato condicional de una celda.

66. Antonio

Se me hace un excelente herramienta de trabajo, as como todas


las publicaciones que nos hacen llegar

67. Martin Fierro

Excelente curso Moises, gracias por los tips que son tiles.

68. miguel

Moiss
Excelente como siempre y UTILISIMO!!!! pues permite contar en
planillas que otros hicieron visualmente y nosotros queremos los
casos en nmeros.

69. Gerardo

Excelente trabajo el que haces con ste sitio, es muy til para los
que creemos que sabemos excel. Gracias y Felicidades
70. Patricia Gabriela Aguilera

Felicitaciones por todos sus tutoriales. Son excelentes!


Adicionalmente es muy halagador ver que lee cada uno de los
comentarios y da respuesta a los mismos! Por personas como
Ud es que uno no deja de enamorarse cada dia mas de excel.

71. Isaas

Super excelente, el sitio es de mucha ayuda

72. byron victor

excelente para los trabajos en excel

73. Jorge

Muchas gracias por todo Moses.