Funciones Contar y Sumar Por Color en Hoja de Excel

download Funciones Contar y Sumar Por Color en Hoja de Excel

of 5

Transcript of Funciones Contar y Sumar Por Color en Hoja de Excel

FUNCIONES CONTAR Y SUMAR POR COLOR EN HOJA DE EXCEL.NOTA: PARA ABRIR VB (VISUAL BASIC) DEBO DAR ALT+F11Operaciones con colores en ExcelExcel no tiene ninguna funcin que nos permita conocer, ni establecer, elcolor de relleno de una celday 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 realizaroperaciones con colores en Excel. Pero antes de iniciar con el cdigo hablar un poco sobre la propiedadInterior.Colorde una celda.La propiedad Interior.ColorA partir de Excel 2007 tenemos millones de colores disponibles para elegir el color de relleno de una celda. Dicha informacin es almacenada en la propiedadInterior.Colory es posible crear nuestra propia funcin para obtener dicho valor. Considera el siguiente cdigo:12345Function OBTENERCOLOR(celda As Range) As LongOBTENERCOLOR = celda.Interior.ColorEnd Function

Esta funcin devolver el valor de la propiedadInterior.Colorde 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 propiedadInterior.Colorya 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 rellenoParasumar por el color de relleno de una celdaser necesario evaluar la propiedadInterior.Colory todas las celdas que tengan el mismo valor debern ser sumadas. El cdigo de nuestra funcin ser el siguiente:12345678910111213141516Function SUMARPORCOLOR(celdaColor As Range, rango As Range)'Variable resultado almacena la suma totalDim resultadoDim celda As RangeFor Each celda In rango'Compara la propiedad Interior.ColorIf celda.Interior.Color = celdaColor.Interior.Color Thenresultado = resultado + celda.ValueEnd IfNext celdaSUMARPORCOLOR = resultadoEnd Function

Cada vez que encontramos una coincidencia en el valor de la propiedadInterior.Colorla variableresultadohace 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.ColorIndexComo 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.ColorIndexque an est disponible pero que tiene la limitante de los 56 colores.Puedes consultar un ejemplo que utiliza la propiedadInterior.ColorIndexen el artculoSumar por colores en Excely 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 propiedadInterior.ColorIndexen lugar deInterior.Color.Contar por el color de rellenoYa que hemos creado la funcin para sumar, ahora crearemos otra funcin que nos permitacontar por el color de relleno de una celda. El cdigo ser muy similar al de la funcin anterior:12345678910111213141516Function CONTARPORCOLOR(celdaColor As Range, rango As Range)'Variable resultado almacena la cuenta totalDim resultadoDim celda As RangeFor Each celda In rango'Compara la propiedad Interior.ColorIf celda.Interior.Color = celdaColor.Interior.Color Thenresultado = resultado + 1End IfNext celdaCONTARPORCOLOR = resultadoEnd 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 rellenoYa sabemos cmo sumar y contar por colores, pero si lo que necesitas es evaluar elcolor de relleno de una celdapara 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 propiedadInterior.Colory 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 artculoEvaluar el color de fondo de una celdadonde adems encontrars otros ejemplos como el de comparar el color de la fuente de una celda.De esta manera hemos aprendido cmo haceroperaciones con colores en Excelen aquellos casos en los que necesitemos sumar, contar o evaluar los colores de relleno de las celdas. Puedesdescargar el libro de trabajoutilizado en este artculo y reutilizar las funciones que hemos creado para seguir trabajando con colores en Excel.