Sumar según formato de celda.

He buscado en la web varias respuesta al tema de sumar según colores de celdas, he intentado con las macros que aparecen, pero siempre me envía el mismo error: "#¿NOMBRE?" y no me hace el cálculo, revisé una por una las funciones de la macro, las cambié por otras que había en la web y nada, ¿qué pudiera estar pasando?
Atenta a sus comentarios.

1 Respuesta

Respuesta
1
Si lo que quieres es sumar celdas de acuerdo al color que estas tenga, tal vez esta función te puede servir, es un función que encontré en internet y ami me ha funcionado, primero debes ingresar el código al editor VBA y después usar la función de acuerdo a como lo marca la sintaxis. Espero te sirva.
Función SumarColorFondo
Esta función sirve para sumar las celdas que tienen un determinado color de fondo en un rango:
Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As Range) As Double Dim rngCelda As Range For Each rngCelda In rngRangoAsumar If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1, 1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo + rngCelda Next rngCelda Set rngCelda = Nothing End Function
La sintaxis es:
=SumarColorFondo(CeldaDeMuestra; RangoASumar)
Donde CeldaDeMuestra es una sola celda que tiene el color que se desea procesar, y RangoASumar es el rango de celdas sobre el que se efectuará la suma.
Esta función se usa normalmente en una celda cuyo color de fondo es el que se necesita sumar.
Ejemplo:
=SumarColorFondo(C1;A1:A50)
Devolverá la suma de los valores de las celdas en el rango A1:A50 cuyo color de fondo sea igual al de la celda C1.
Hay que tener en cuenta que esta función no es capaz de procesar el color de las celdas generado por los formatos condicionales.
Nota sobre esta función: el cambio de color en una o más celdas usando la opción "Formato" o el botón "Color de relleno" no produce un recalculo de la hoja, por lo que la función SumarColorFondo no se actualizará hasta el siguiente recalculo. Sin embargo, la actualización de la función sí se produce si se copia el formato de una de las celdas cuyo color se quiere sumar y se hace un pegado especial de dicho formato en la celda que sirve como modelo a la función, o si se utiliza el botón 'Copiar formato' de la barra de herramientas 'Formato'.
No olvides calificar y cerrar la pregunta.
Como dije en mi pregunta, el concepto lo entiendo y lo hice, pero me sigue enviando en la celda de la función: #¿NOMBRE?, esto quiere decir que hay en alguna parte un error, y eso es lo que quiero solucionar.
Esperando una solución
Gracias
¿Estas seguro que estas metiendo bien el código a tu editor VBA? Puesto que a mi me funciona perfectamente, debes hacer lo siguiente
1. Abres excel
2. Presionas Alt+F11 al mismo tiempo
3. En la ventana que te salga eliges el menú insertar y de las opciones que te salgan eliges la opción Modulo
4. Copias este código y lo pegas en la parte en blanco de la ventana que te salga
Function SumarColorFondo(rngCeldaColor As Range, rngRangoAsumar As Range) As Double Dim rngCelda As Range For Each rngCelda In rngRangoAsumar If rngCelda.Interior.ColorIndex = rngCeldaColor.Cells(1, 1).Interior.ColorIndex Then SumarColorFondo = SumarColorFondo + rngCelda Next rngCelda Set rngCelda = Nothing End Function
5. Cierras la ventana del editor
6. Te vas a tu archivo de excel
7. Vamos a suponer que el rango que quieres sumar es A2:50. Y la suma la vas a hacer en A51
8. Pones una celda con el color de muestra que quieres, por ejemplo supón que quieres sumar las celdas que tengan color amarillo entonces pones la celda B51 con el color amarillo igual al color de las celdas que quieres sumar (La celda de muestra puede estar donde tu quieras, incluso la misma celda donde estés haciendo la suma puede tener el color que quieres sumar).
9. En la celda A51 metes la función =sumarcolorfondo(B51, A2:A50) y listo la suma aparece.
Con este procedimiento bien aplicado es imposible que no te haga la suma de celdas por color. Y si aún así continuas teniendo problemas checa bien tu configuración tal vez en lugar de meter una coma en la fórmula(,) deba ser punto y coma (;) ya que eso también influye en el resultado.
Excelente, me funcionó, pero ahora se me complicó la cosa... funciona si ingreso valores directos a la celda, pero si es una fórmula, o una sumatoria, me causa error, por otro lado, requiero agregarle una condición más (es aquí donde se complica la cosa), pero la verdad es que con mi condición de nivel básico... Se puede ingresar dos condiciones en una función, porque la primera es la que ya funcionó (a medias) la segunda es que me sume siempre y cuando cumpla una segunda condición, es decir, valor de "sumar columna por si celda x=fantura nº...
¿Se podrá?
Gracias
En primer lugar te diré que esta fórmula funciona tanto para valores como para fórmulas, es decir, no importa lo que tengas en la celda, funciona correctamente SIEMPRE y CUANDO las celdas tengan color (puesto que finalmente para eso está diseñada, para sumar en base a COLORES)
Por otro lado, no te entendí muy bien, pero creo que lo que quieres es que sume si determinada celda tiene cierto valor ¿estoy en lo correcto?
Bueno de ser así entonces harías lo siguiente: Supón que quieres sumar el rango A2:A20 si la celda B2 es mayor a 0, esto es solo un ejemplo y ya tu lo adaptas a tus necesidades. Vamos a hacer que la misma celda que cumplirá con el criterio (B2) sea la celda muestra para el color que sumará, sigue este proceso:
1. En la celda B2 que será la que contrendrá el criterio ponle el color de las celdas que quieres sumar por ejemplo azul.
2. Suponiendo que quieras obtener tu reslutado en la celda A21 mete esta fórmula:
=SI(B2>0,sumarcolorfondo(B2,A2:A20),0)
Con esto la fórmula primero evaluará la condición y si se cumple sumará y si no pondrá 0.
Espero sea lo que necesitas. Por favor no olvides puntualizar y cerrar la pregunta.
Podrías cerrar la pregunta
Muchas gracias, finalmente me sirvió, era exactamente lo que necesitaba.
Gracias
No sé cómo se realiza la puntuación; de 0 a 10, de 0 a 100, pero de seguro le doy la máxima puntuación.
Gracias nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas