Cómo sumar celdas de un color en Excel (con y sin VBA)
En Excel, la función SUMA.SI no reconoce directamente el color de relleno de una celda como criterio. A diferencia de los valores numéricos o de texto, el color es una propiedad de formato y no un dato almacenado, por lo que necesitas un enfoque alternativo. Afortunadamente, existen dos métodos principales que te permiten lograrlo de forma fiable.
Método 1: Macro VBA (el más rápido y fiable)
La forma más directa es usar una pequeña macro que recorra un rango, verifique el color de cada celda y sume solo las que coincidan. Abre el editor de VBA con Alt + F11, inserta un módulo nuevo y pega el siguiente código:
Function SumaPorColor(Rango As Range, Color As Range) As Double
Dim celda As Range
Dim total As Double
For Each celda In Rango
If celda.Interior.ColorIndex = Color.Interior.ColorIndex Then
total = total + celda.Value
End If
Next celda
SumaPorColor = total
End FunctionUna vez guardada, en tu hoja escribes en la celda destino: =SumaPorColor(B2:B50, B3), donde B2:B50 es el rango a revisar y B3 es una celda que tenga el color que quieres buscar. Excel evaluará la macro como función y devolverá la suma.
Método 2: Sin VBA, usando columna auxiliar
Si no puedes habilitar macros, crea una columna auxiliar junto a tus datos. En la celda D2 escribe:
=SI(B2="rojo",B2;"
Luego aplicas Formato Condicional en la columna de datos: selecciona el rango B2:B50, ve a Inicio → Formato condicional → Nueva regla → Usar una fórmula, e introduce una fórmula que devuelva VERDADERO solo para el color que te interese (por ejemplo, si has etiquetado manualmente). Después usas =SUMA.SI(D2:D50,"rojo",B2:B50) para obtener el total.
Método 3: OFFSET + INDIRECTO con rangos con nombre
Si tus celdas de un mismo color siempre están en posiciones fijas, puedes crear un Rango con nombre que apunte solo a esas celdas y usar =SUMA(RangoConNombre). Es menos flexible pero no requiere macros.
Consideraciones importantes:
| Criterio | VBA | Auxiliar | Rango con nombre |
|---|---|---|---|
| Velocidad | Alta | Media | Alta |
| Flexibilidad | Alta | Media | Baja |
| Requiere macros | SÃ | No | No |
| Escalable a 1000+ filas | SÃ | SÃ | Limitado |
Función VBA recomendada: =SumaPorColor(B2:B50, B3) donde B3 es la celda con el color a buscar.
Dato clave