16 de octubre de 2017

[CONTAR] el numero de celdas por su Color


Hoy aprenderemos como contar el numero de celdas por su color en tu archivo de Excel, con la ayuda de una funcion que crearemos llamada CuentaColor.

A diario nos encontramos con diferentes situaciones en nuestros trabajos o estudios diarios, y por alguna necesidad o motivo requerimos poder contar el número de celdas por su color.


 Por ejemplo, tenemos un archivo como el que muestro en la imagen :


 Total azules: Como ves no siempre es posible simplemente identificar la celda de alguna manera con el valor escrito, entonces ¿Como hacerlo?

PASOS:

Antes de hacer la macro, debe activar la pestaña "Programador" o tambien llamada "Desarrollador" en Excel. Si no la tiene activa, aquí le explicamos paso a paso

Cuando active esta pestaña, seleccione la opción Visual Basic como lo indica la siguiente imagen:
1. Ingresamos al editor de Visual Basic, o teclear alt + F11
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHR5mpuNgvlausp9J6CsJE42WxKd1WC1DN3i3WtulBaRHlfUVNZjhJxyUudfOElNgBOF1WnHngEP7hg3lXQT_3PsEeepquRNkobpR8ObdqNcIJKMfcPj_GjDsRtC3uiSWsXLl8ztsZZTw/s1600/imagen4.png
2. Insertamos un nuevo Modulo.

3. Escribimos el siguiente codigo.



Function CuentaColor(rango_datos As range,_ 
condicion_color As range) As Long

  Dim datoX As range

  Dim colorX As Long

  colorX = condicion_color.Interior.ColorIndex

  For Each datoX In rango_datos

    If datoX.Interior.ColorIndex = colorX Then

         CuentaColor = CuentaColor + 1

    End If

  Next datoX

End Function
				
 4. Ya está!!!

Ahora solo nos queda cerrar el editor de Visual Basic y regresar al archivo.

5. Probemos.   En cualquier celda escribe la funcion =CuentaColor(C7:C19;C7)

El primer argumento es el rango que deseamos contar, y el segundo es la celda donde contiene el color a contar.


























RESULTADOS 


HEMOS TERMINADO Verás cómo te ahorras horas de trabajo y dolores de cabeza con esta simple función.
 
 Compartimos Gratis Videos y trucos de Excel, quieres suscribirte a nuestro canal?  https://www.youtube.com/user/vtbiable


Si te gustó, síguenos en Twitter  para recibir nuestras actualizaciones y trucos

9 comentarios:

  1. Hola, ¿hay forma de contar las celdas según su color, cuando estas se colorean con "formato condicional"?
    Gracias

    ResponderBorrar
    Respuestas
    1. Hola Alonso, por el momento no funciona con formato condicional, pero estamos en proceso de pruebas para dar solucion.

      Borrar
  2. La funcion CuentaColor no trabaja con excel 2016 porqué y cómo solucionarlo ... Gracias

    ResponderBorrar
  3. buenos días, por favor ayuda necesito una formula que anide mas de 3 criterios de color...=CONTAR_COLOR(F73;D6:BD70)como los agrego????muchas gracias de antemano, atte, meg

    ResponderBorrar
  4. Hola, ¿hay forma de contar las celdas según su color, cuando estas se colorean con "contar si cojunto de colores¨?
    Gracias

    ResponderBorrar
  5. Buenas tardes,

    Me ha sido de mucha utilidad el codigo anterior. gracias.

    Tengo una cuestión, si quiero que me cuente celdaas con un color pero que tengan un texto concreto, lo he implementado manuelamente así:

    Function CuentaColor(rango_datos As Range, condicion_color As Range) As Long

    Dim datoX As Range

    Dim colorX As Long

    colorX = condicion_color.Interior.ColorIndex

    For Each datoX In rango_datos
    If datoX = "JC + R2" Then

    If datoX.Interior.ColorIndex = colorX Then

    CuentaColor = CuentaColor + 1

    End If

    End If

    Next datoX

    End Function

    pero si quiero automatizar y que el contenido de texto lo lea de una celda en particular (para tablas con muchas entradas) ya no me funciona. Lo he picado así:

    Function CuentaColorR(rango_datos As Range, condicion_codigo As Range, condicion_color As Range) As Long

    Dim datoX As Range

    Dim datoY As String

    Dim colorX As Long

    colorX = condicion_color.Interior.ColorIndex

    datoY = condición_codigo.cell.Value

    For Each datoX In rango_datos

    If datoX = datoY Then

    If datoX.Interior.ColorIndex = colorX Then

    CuentaColorR = CuentaColorR + 1

    End If

    End If

    Next datoX

    End Function

    pero no va.

    Teneís alguna pista?

    un saludo
    Antonio

    ResponderBorrar
  6. que se debe hacer para que ese modulo 1 de contar color quede permanente al volver a abrir el documento?

    ResponderBorrar
    Respuestas
    1. Hola!!! Para que quede disponible en todos lo que debes hacer es guardarla en el libro personal de macros. En este vinculo a continuacion en el paso 2 se encuentra la ventana donde le dices guardar la macro en "libro de macros personal" http://ideasdeexcelavanzadas.blogspot.com.co/2010/01/como-crear-una-macro-automaticamente.html

      Borrar