Sumar por colores en Excel

Ya que las celdas de Excel pueden tener un color de relleno, es posible que en alguna ocasión te veas en la necesidad de sumar el contenido de celdas de acuerdo a su color. Existen dos opciones para realizar este tipo de suma.

Ordenar por color y sumar

Desde la versión de Excel 2007 es posible ordenar las celdas de una columna por color. El primer paso es  agregar un filtro a la tabla que contiene los datos y posteriormente seleccionar la opción Ordenar por color para elegir el color deseado.

Sumar por colores en Excel

Los datos de la tabla se organizarán de manera que las celdas que tienen el color seleccionado quedarán como las primeras filas.

Ordenar celdas por su color

De esta manera podría utilizar la función SUMA y su argumento sería el rango de celdas del color azul.

=SUMA(B2:B4)

Aunque este procedimiento resuelve mi problema de sumar por colores en Excel, podría crear una macro que me ayude a sumar rápidamente por colores sin la necesidad de agregar un filtro a la tabla ni de ordenarla por el color deseado.

Sumar por colores con VBA

Para lograr esta suma utilizando VBA debemos crear un nuevo módulo y una función como la siguiente:

Macro para sumar celdas por color

Podemos utilizar esta función en la hoja de Excel de la siguiente manera:

Sumar celdas por su color con una macro

Observa cómo el primer argumento de la función indica la celda que contiene el color que deseo sumar, que en este caso es el color azul de la celda B4, y el segundo argumento indica el rango que deseo considerar en la evaluación.

Para sumar un color diferente será suficiente con cambiar el primer argumento de la función indicando la celda que contiene el nuevo color. A continuación hago la suma de las celdas con el color verde:

Ejemplo de suma de celdas por color utilizando una macro

Puedes descargar el archivo de trabajo para hacer las pruebas en tu propio equipo.

36 pensamientos en “Sumar por colores en Excel

  1. HERNAN VALENCIA

    Muchas gracias, me gustaría saber tambien como puedo contar las celdas con un color en particular (nosumarlas)

    Responder
    1. Moisés Ortíz Autor

      Hola Hernan, para contar (en lugar de sumar) debes remplazar la línea: resultado = resultado + celda.Value
      por el siguiente código:
      resultado = resultado + 1

      Responder
  2. Betun

    Hola,
    Quería preguntarte como puedo abrir la macro en un archivo existente, es decir, como lo añado a mis macros personales. Gracias por tu gran aporte.
    Un saludo!

    Responder
  3. Armando Mercado

    Hola, buenas noches tu página es muy buena y me ayudado mucho mi pregunta es la siguiente ¿Se pueden sumar varios colores de una misma columna lo pregunto porque yo tengo que colorear diferentes celdas pero algunas quedan en blanco, entonces no sé si se puedan seleccionar todos los colores que ocupo a la vez para que los sume ejemplo: yo coloreo con azul, amarillo, verde, rojo y además sin colorear que en este caso no me sirven?

    Espero haber sido claro y que me puedas ayudar de ante mano Muchas Gracias!!!!!

    Responder
    1. Moisés Ortíz Autor

      Hola Armando, si te refieres al uso de la función VBA, entonces debes utilizar una función para cada color y sumar el resultado de cada una:
      =SumarColor(B2,B2:B11) + SumarColor(B3,B2:B11)

      Responder
  4. Jose

    Moises, como se reinicia la funcion si todos los dias agrego colores?

    Responder
    1. Moisés Ortíz Autor

      Hola Jose, no me queda clara tu pregunta. La función no almacena colores por lo que no es necesario “reiniciarla”. Lo que hace el código VBA es comparar un rango de celdas con el color indicado en el primer argumento de la función y aquellas que coinciden se suman.

      Responder
  5. Andrea

    Hola,

    Si mi software de excel se encuentra en ingles ¿cual seria la formula?, no la encuentro

    Saludos

    Responder
    1. Moisés Ortíz Autor

      Hola Andrea, No existe equivalencia porque no es una función de Excel sino una función que yo mismo cree (UDF).
      Para poder utilizarla debes implementar el código mostrado en el artículo dentro de tu propio código VBA.

      Responder
  6. lita chavez

    hola moises,

    tengo una duda, quiero crear una sumatoria para contar cuantas celdas de una misma columna tienen el mismo nombre; no se trata de sumar numeros, es para saber cuantos son “suficientes”, “competentes”, “sobresalientes” para que con esos totales yo pueda crear, posteriormente, una grafica de pastel; ojala me haya explicado y pueda ayudarme con esto porque no he encontrado la manera de hacerlo, aunque igual cabe la posibilidad que no se pueda;

    saludos =)

    Responder
    1. Moisés Ortíz Autor

      Hola Lita, utiliza la función CONTAR.SI con un criterio de texto, por ejemplo, para contar las celdas en el rango A1:A100 que tienen el texto “SUFICIENTES” puedes utilizar la siguiente fórmula:
      =CONTAR.SI(A1:A100, “SUFICIENTES”)

      Responder
  7. EDDY

    como hago para sumar el color de la celda nadamas si tengo es letras, es decir no quiero que me sume las letras si el color como hago

    Responder
    1. Moisés Ortíz Autor

      Hola Eddy, no entiendo a lo que te refieres con “sumar el color de la celda”. Tal vez puedas explicar un poco más al respecto.

      Responder
      1. JOHN

        hola, yo tengo un inconveniente similar, tengo una lista de personas que es demasiado grande y están resaltadas algunas que ya se atendió, me gustaría saber ¿cómo puedo hacer para contar las que están resaltadas por un color, es decir, cómo puedo contar las que tienen un relleno de la celda?.

        muchas gracias!!

        Responder
  8. Flavia

    Hola! Antes que nada muchas gracias por tu aporte! Una consulta, he logrado que la macro funcione pero no se ejecuta automaticamente cuando cambio el color de una celda. Me podrás ayudar por favor? Gracias!!

    Responder
    1. Moisés Ortíz Autor

      Flavia, no existe ningún evento en VBA que detecte el cambio de color de una celda, y por lo tanto no hay manera de ejecutar una macro a partir de esa acción. Tendrías que hacer otra macro que esté revisando constantemente el color de una celda específica (cada 5 minutos por ejemplo) y cuando encuentre el cambio ejecute la otra macro, pero la verdad no sería una solución óptima.

      Responder
      1. Barsom

        Hola Moises. Muy bueno, era lo que estaba buscando,
        A la respuesta de Flavia tuve el mismo problema y lo único más rápido que pude hacer es presionar “F2″ sobre la fórmulay luego “ENTER” y se actualiza.
        Saludos

        Responder
  9. David

    Hola, muy bueno el post.

    Me gustaría poder contar y/o sumar por colores, pero el color al que deseo aplicar la formula proviene de la aplicación del Formato Condicional de Excel, que cambios o formula podría crear.

    Gracias

    Responder
    1. Moisés Ortíz Autor

      Hola David, el formato condicional utiliza un rango de colores más amplio que el que se puede almacenar en la propiedad ColorIndex, pero aún así es posible sumar por colores si utilizamos la propiedad Color. Tengo un artículo que detalla ese método:
      http://exceltotal.com/operaciones-con-colores-en-excel/

      Responder
  10. Juan Jose

    Necesito un VBA para contar el total de celdas con color amarrillo. Ese color Amarrillo es asignado por un formato condicional. Cuando el color no es asignado por formato condicional no tengo problema en contar las celdas. He leido, http://exceltotal.com/operaciones-con-colores-en-excel/. Pero eso no resuelve el problema cuando los colores son asignados por formato condicional.

    Responder
    1. Moisés Ortíz Autor

      Hola Juan Jose, cuando los colores son asignados por formato condicional se almacenan dentro de la propiedad Interior.Color de la misma regla de formato. Para acceder dicho valor puedes utilizar la siguiente instrucción:
      miHoja.Cells(1,1).FormatConditions(1).Interior.Color

      Responder
  11. Jose

    Hola, muy util la funcion pero tengo un problema. Al poner o modificar el color de fondo, con los numeros ya ingresados en la celda, no me actualiza la informacion. Esto lo hace cuando uno modifica o ingresa un numero posterior a poner color de fondo. Es posible solucionar esto ? Gracias

    Responder
    1. Moisés Ortíz Autor

      Hola José, solo se actualizará automáticamente si llamas la función desde algún evento de la hoja como el Worksheet_Change.

      Responder
  12. Gustavo

    Hola Moises, tengo un archivo en el que me remarca con color una suma de minutos de un determinado nombre como por ej Lucas, lo que yo nesecito es sumar esos minutos >a 10 min pero solo para lucas. Como lo puedo hacer ?. Gracias

    Responder
    1. Moisés Ortíz Autor

      Hola Gustavo, en tu caso no es necesario sumar por color ya que también puedes hacerlo por nombre, es decir, sumar las celdas iguales a “Lucas”.
      Te recomiendo utilizar la función SUMAR.SI.CONJUNTO que te permitirá sumar por varias condiciones. No puedo darte la fórmula exacta porque no sé como tienes los datos de tiempo, pero podría ser una fórmula como la siguiente:
      =SUMAR.SI.CONJUNTO(A1:A99, B1:B99, “Lucas”, C1:C99, “>0.006944444″)

      Te dejo un artículo con más información sobre esta función:
      http://exceltotal.com/la-funcion-sumar-si-conjunto-en-excel/

      Responder
  13. Rosa

    Hola, he intentado utilizar la formula de sumar celdas del mismo color,=SUMARCOLOR(H319; H323:H363)y no lo consigo. Estoy utilizando el excel2100 ( Modo de compatibilidad).
    Al hacer la formula me da el error #NOM?
    He buscado la formula y en mi Excel no la encuentro. Muchas Gracias.
    Rosa

    Responder
    1. Moisés Ortíz Autor

      Hola Rosa, la función SUMARCOLOR mostrada en este artículo no es una función de Excel por lo que no la encontrarás por ningún lado. Esta es una función que yo desarrollé y para utilizarla necesitas descargar el archivo de trabajo y copiar el código VBA a tu propio libro de Excel.

      Responder
  14. Alfredo Mira

    Buenos días Moisés
    Me gustaría saber como sumar celdas de excel(2010) según el color del texto, no del relleno.
    Gracias

    Responder
  15. Irma

    Exelente aportacion mil gracias

    Responder
  16. Demix Wilson

    Hola, esto en realidad me ha servido de mucho, pero quiero hacer algo, que no veo aquí, y es que, dependiendo de las cosas que tengo en Stock, por ejemplo, si tengo ´´0´´ cantidad de unidades en Stock, al lado de la casilla poder poner que automáticamente se ponga Rojo, y si tengo ´´1>´´ cantidad de unidades en Stock que esta casilla cambie a verde, ¿existe una manera de poder hacer esto? Gracias de antemano.

    Responder
  17. Antonio Barrera

    Hola, Primero que Nada muchas gracias por tu aporte, me fue de gran utilidad!!! ahora te hago una pregunta ¿cómo hago para que la función SumarColor me quede disponible en Excel y no solo en el Libro que estoy trabajando? ya que creo un nuevo archivo de Excel pero la función no aparece por lo cual me toca crearla nuevamente.
    Saludos

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>