Esta función a partir de un criterio y un color de celda suma los valores de un rango, los parámetros que requiere son 3:

  1. color_de_referencia: celda que contiene el color de relleno de referencia.
  2. concepto_de_referencia: celda que contiene el criterio a ser sumado.
  3. rango_de_colores_y_conceptos : Solo el rango de conceptos y colores.
  4. columnas_de_desplazamiento : es un valor númerico entero, indica el número de columnas a la derecha del rango_de_colores_y_conceptos donde estan los valores a ser sumados.

Ejemplo, en el rango A2:A41 tengo diferentes conceptos con diferentes colores, y en el rango B2:B41 tengo los valores númericos a ser sumados, en la celda D1 tengo el criterio "Bolígrafo" con fondo verde, quiero saber cuanto es la sumatorioa considerando ese concepto y ese color de relleno, entonces en la celda E1 hago el llamado de la función donde:

  1. color_de_referencia: D1
  2. concepto_de_referencia: D1
  3. rango_de_colores_y_conceptos : A2:A41
  4. columnas_de_desplazamiento : 1

=sumarPorColorYConcepto(D1,D1,$A$2:$A$41,1)

 Copiar código

Function sumarPorColorYConcepto(color_de_referencia, concepto_de_referencia, rango_de_colores_y_conceptos As Range, columnas_de_desplazamiento As Integer) As Double
	'sumarPorColorYConcepto(Ctrl + Shift + A)-> para obtener en mini tooltip
	Application.Volatile
	Dim conteo As Double
	Dim obj As Object
	conteo = 0
	For Each obj In rango_de_colores_y_conceptos
	  If obj.Interior.Color = color_de_referencia.Interior.Color And obj.Value = concepto_de_referencia.Value Then
		conteo = conteo + obj.Offset(0, columnas_de_desplazamiento).Value
	  End If
	Next obj
	sumarPorColorYConcepto = conteo
End Function