19 de enero de 2009

Sumar por colores

Un usaurio me pregunta si es posible sumar los valores de celdas que tengan determinado color.
En Excel 2007 sí es posible, pero el usuario tiene la versión 2003.

En Excel 2003 la única forma es a través de una función personalizada, como la siguiente:

Function SUMARCOLOR(RangoColor As Range, CeldaColor As Range) As Long

Dim rngCelda As Range

'revisamos cada celda del rango
For Each
rngCelda In RangoColor

'si los colores coinciden, sumar el valor de la celda al resultado previo
If
rngCelda.Interior.ColorIndex = CeldaColor.Interior.ColorIndex Then
SUMARCOLOR = SUMARCOLOR + rngCelda.Value
End If

Next

End Function

Como vemos, no es un código muy complejo que digamos. Simplemete comparamos cada celda del rango contra el color del segundo argumento y, si coinciden, lo vamos sumando al resultado de la función.

Para utilizarla, utilizamos el asistente para funciones, buscamos la función en la categoría Definidas por el usuario, y especificamos los argumentos, quedando una fórmula similar a:

=SUMARCOLOR(A2:I20, K2)

Aunque por otra parte, lo mejor hubiera sido establecer alguna condición para los colores, y después sumar los valores usando esta condición, así como utilizar esta misma condición en un formato condicional para obtener el color en las celdas. Hacerlo hubiera llevado menos tiempo que el estar coloreando cada una de las celdas.

11 comentarios:

  1. muy buena retroalimentación Leonel, gracias por tu apoyo el ususario que se vio beneficiado por esto fui yo.
    Antonio.

    ResponderEliminar
  2. Efectivamente, no la puedo hacer funcionar. Podrías subir un ejemplo?!

    ResponderEliminar
    Respuestas
    1. Hola. Debes pegar el código en Visual Basic en un módulo, y muy importante que las macros estén habilitadas. Saludos

      Eliminar
  3. Excelente tu aporte para aprender mas... me sirvio de mucho... gracias

    ResponderEliminar
  4. gracias, si me funciono.

    ResponderEliminar
  5. Como se abilitan los marcos?

    ResponderEliminar
  6. para que les funciones la formula, deben poner primero el color a buscar y después el rango donde se sumara: =sumarcolor(a1, a1:a30) en el ejemplo sale al contrario por eso no me funcionaba también xD

    ResponderEliminar
  7. para que les funciones la formula, deben poner primero el color a buscar y después el rango donde se sumara: =sumarcolor(a1, a1:a30) en el ejemplo sale al contrario por eso no me funcionaba también xD

    ResponderEliminar
  8. yo tengo excel 2010 tambien funciona la formula???

    ResponderEliminar
  9. yo tengo excel 2010 tambien funciona la formula???

    ResponderEliminar

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Excel, Excel 2003, Excel 2007 y el logo XL son marcas registradas de Microsoft Corporation.