Sei sulla pagina 1di 5

FUNCIONES CONTAR Y SUMAR POR COLOR EN HOJ A DE EXCEL.

NOTA: PARA ABRIR VB (VISUAL BASIC) DEBO DAR ALT+F11


Operaciones con colores
en Excel
Excel no tiene ninguna funcin que nos permita conocer, ni establecer, el color de
relleno de una celda y sin embargo es muy comn que necesitemos contar o
sumar las celdas que tienen el mismo color de fondo.
Ya que no podemos utilizar ninguna funcin existente ser necesario crear nuestra
propia funcin (UDF) con cdigo VBA de manera que podamos
realizar operaciones con colores en Excel. Pero antes de iniciar con el cdigo
hablar un poco sobre la propiedad Interior.Color de una celda.
La propiedad Interior.Color
A partir de Excel 2007 tenemos millones de colores disponibles para elegir el color
de relleno de una celda. Dicha informacin es almacenada en la
propiedad Interior.Color y es posible crear nuestra propia funcin para obtener
dicho valor. Considera el siguiente cdigo:
1
2
3
4
5
Function OBTENERCOLOR(celda As Range) As Long

OBTENERCOLOR = celda.Interior.Color

End Function
Esta funcin devolver el valor de la propiedad Interior.Color de la celda que
hayamos especificado como argumento. En la siguiente imagen puedes observar
el comportamiento de la funcin:

Aunque este ha sido un ejemplo muy sencillo, la funcin OBTENERCOLOR que
acabamos de crear ser de gran utilidad para comprobar que dos celdas tienen
efectivamente el mismo valor para la propiedad Interior.Color ya que, al existir
millones de colores, es posible ver en pantalla colores muy parecidos pero que en
realidad tienen valores diferentes por lo que Excel los tratar como colores
diferentes.
Sumar por el color de relleno
Para sumar por el color de relleno de una celda ser necesario evaluar la
propiedad Interior.Color y todas las celdas que tengan el mismo valor debern ser
sumadas. El cdigo de nuestra funcin ser el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function SUMARPORCOLOR(celdaColor As Range, rango As Range)

'Variable resultado almacena la suma total
Dim resultado
Dim celda As Range

For Each celda In rango
'Compara la propiedad Interior.Color
If celda.Interior.Color = celdaColor.Interior.Color Then
resultado = resultado + celda.Value
End If
Next celda

SUMARPORCOLOR = resultado

End Function
Cada vez que encontramos una coincidencia en el valor de la
propiedad Interior.Color la variable resultado hace la suma del valor de la celda y
as obtenemos la suma total. Observa el comportamiento de esta funcin:

En este ejemplo sumamos las celdas que tienen el mismo color de la celda D1 y
que son las celdas A3 y A5 por lo que obtenemos como resultado un 5 para la
suma.
La propiedad Interior.ColorIndex
Como lo mencion anteriormente, las versiones anteriores a Excel 2007 no tenan
los millones de colores que tenemos disponibles hoy en da. De hecho, Excel 2003
tena una paleta de 56 colores y dicho nmero se almacenaba en la
propiedadInterior.ColorIndex que an est disponible pero que tiene la limitante de
los 56 colores.
Puedes consultar un ejemplo que utiliza la propiedad Interior.ColorIndex en el
artculo Sumar por colores en Excel y vers que la funcin VBA propuesta en
dicho artculo es muy similar a la funcin que acabamos de crear con la nica
diferencia de que se compara la propiedad Interior.ColorIndex en lugar
de Interior.Color.
Contar por el color de relleno
Ya que hemos creado la funcin para sumar, ahora crearemos otra funcin que
nos permita contar por el color de relleno de una celda. El cdigo ser muy
similar al de la funcin anterior:
1
2
3
4
5
Function CONTARPORCOLOR(celdaColor As Range, rango As Range)

'Variable resultado almacena la cuenta total
Dim resultado
Dim celda As Range
6
7
8
9
10
11
12
13
14
15
16

For Each celda In rango
'Compara la propiedad Interior.Color
If celda.Interior.Color = celdaColor.Interior.Color Then
resultado = resultado + 1
End If
Next celda

CONTARPORCOLOR = resultado

End Function
El nico cambio en esta funcin respecto a la anterior se encuentra en la lnea 10
que en lugar de sumar el valor de la celda, simplemente suma el valor uno para
llevar la cuenta de las celdas con el mismo color de relleno. En la siguiente imagen
puedes observar el resultado de utilizar esta funcin al contar las celdas que
tienen el mismo color que la celda D1:

Evaluar el color de relleno
Ya sabemos cmo sumar y contar por colores, pero si lo que necesitas es evaluar
el color de relleno de una celda para tomar una decisin, entonces debemos
utilizar la funcin SI haciendo una comparacin de los colores para saber si son
iguales. Una alternativa es utilizar la primera funcin desarrollada en este artculo
de la siguiente manera:

Para cada celda de la columna A obtenemos el valor de la
propiedad Interior.Color y lo comparamos con el valor de la segunda celda. De
esta manera podemos tomar una decisin en caso de que los colores sean iguales
o diferentes.
Otra alternativa es utilizar una funcin que desarroll en un artculo anterior la cual
permite comparar el color de relleno de una celda con los valores RGB de
cualquier color y devolver falso o verdadero para indicarnos si ambos colores son
iguales. Para conocer ms sobre esa funcin consulta el artculo Evaluar el color
de fondo de una celda donde adems encontrars otros ejemplos como el de
comparar el color de la fuente de una celda.
De esta manera hemos aprendido cmo hacer operaciones con colores en
Excel en aquellos casos en los que necesitemos sumar, contar o evaluar los
colores de relleno de las celdas. Puedes descargar el libro de trabajo utilizado en
este artculo y reutilizar las funciones que hemos creado para seguir trabajando
con colores en Excel.

Potrebbero piacerti anche