miércoles, 10 de abril de 2019

Contar celdas por color en Excel


Navegando por Internet, encontré una publicación que me pareció interesante compartir. Y es que muchas veces nos encontramos trabajando con tablas en las cuales resaltamos ciertas celdas o filas con un color de relleno, para luego poder identificarlas fácilmente de forma visual.

Luego de haber identificado de uno o varios colores las celdas de la tabla, surge la necesidad de contar o realizar alguna operación con las celdas resaltadas. Inmediatamente buscamos alguna función que realice estas operaciones y nos topamos con la sorpresa que no existen dentro del Excel.


Sin embargo, podríamos implementar una función, utilizando Visual Basic for Application (VBA o macros como se conoce mas popularmente) que permita dicha operación.

Empecemos por mostrar una tabla ejemplo muy sencilla:


En la cual tenemos la necesidad de contar las celdas de un color específico, y para ello realizaremos los siguientes pasos:

1. Presionamos las teclas ALT+F11 para poder ir al Visual Basic for Application.

2. Luego en esa pantalla seleccionamos en el Menú Insertar, la opción Módulo.



3. En el módulo nuevo ingresamos el siguiente código:

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


4. Cerramos el Visual Basic for Application y nos regresamos al Excel.

5. En la celda donde queremos contar por color colocamos la siguiente función:

=CONTARCOLOR(E1; A1:A10)



Y listo....

Hay que tener claro que esta función que acabamos de crear solo va a funcionar en este archivo, sin embargo, si quisiéramos que esta función quede instalado en nuestro Excel, o en el de alguien mas y poder reutilizarlo entonces debemos crear un Complemento de Excel y activarlo en nuestro computador.

Para ello podemos visitar la siguiente publicación:

Como crear complementos para Excel (add ins)


Y si nos gustaría que nuestra función contenga descripciones dentro de la ventana del Excel podemos revisar la siguiente publicación:

Agregar descripciones a funciones creadas en VBA


Aquí encontraras otra función interesante:

Convertir un número en letras


Espero que les sirva.

Ing. Enrique Neciosup Morales

3 comentarios:

  1. Hola Enrique ,Buenos Días

    Hay alguna función o mejora de la programación para que el la funcion detecte rapidamente el color . Me explico es que cuando marco otro color se tarda bastante en reconocer dicho color, tambien podria ser por el color ,mietras mas oscuro mejor , podria ser ?

    Muchas Gracias

    ResponderBorrar
  2. Hola me encantó el hecho de que cuente el color, solo me quedé con una duda, cuando cambio el color de una celda por ejemplo de rojo a verde no me actualiza el número de color correcto se queda con el primero que puse, y tengo que volver a arrastrar la fórmula para que actualice, pero me gustaría que cambiará en automático sin arrastrar la fórmula cada que cambie de color a una celda o varias, agradecería la solución , saludos :)

    ResponderBorrar
  3. por que no funciona en la tabla dinámica el contar color

    ResponderBorrar