SUMAR SI CONJUNTO
Publicado por Tere (1 intervención) el 10/10/2019 01:59:52
Buenas!
Necesito programar con Visual Basic una función en Excel que me permita hacer lo siguiente:
En una lista similar a la de la imagen adjunta, se listan distintos números de MATRICULA, con varias lineas de COMPETIDOR IF, donde necesito sacar una suma condicionada.
Preciso sumar todos los valores que correspondan a un número de matricula X, cuyos valores de la columna ACTUAL esté pintada en amarillo.
Es decir, mi condición para un rango es el número de registro y la condición para el segundo rango es el color de celda.
Tengo dos celdas de referencia: en una indico el número de registro del cual preciso la suma, y en otra indico el color que debe buscar, en este caso amarillo.
Logre sacar la función sumar por color, pero no logro agregarle la condicionante de registro, el cual en realidad debe ser mi primera condicionante.
Este es el código que utilizo para sumar por color, si alguien puede ayudarme a sumarle la condicionante de número de registro me sería de gran ayuda:
Function SUMARPORCOLOR(CeldaReferencia As Range, RangoSeleccion As Range, Condicion As Boolean) As Double
Dim celdaSeleccionada As Range
For Each celdaSeleccionada In RangoSeleccion
If Condicion = True Then
If celdaSeleccionada.Interior.ColorIndex = CeldaReferencia.Interior.ColorIndex Then
SUMARPORCOLOR = SUMARPORCOLOR + celdaSeleccionada.Value
End If
Else
If celdaSeleccionada.Interior.ColorIndex <> CeldaReferencia.Interior.ColorIndex Then
SUMARPORCOLOR = SUMARPORCOLOR + celdaSeleccionada.Value
End If
End If
Next
End Function

Necesito programar con Visual Basic una función en Excel que me permita hacer lo siguiente:
En una lista similar a la de la imagen adjunta, se listan distintos números de MATRICULA, con varias lineas de COMPETIDOR IF, donde necesito sacar una suma condicionada.
Preciso sumar todos los valores que correspondan a un número de matricula X, cuyos valores de la columna ACTUAL esté pintada en amarillo.
Es decir, mi condición para un rango es el número de registro y la condición para el segundo rango es el color de celda.
Tengo dos celdas de referencia: en una indico el número de registro del cual preciso la suma, y en otra indico el color que debe buscar, en este caso amarillo.
Logre sacar la función sumar por color, pero no logro agregarle la condicionante de registro, el cual en realidad debe ser mi primera condicionante.
Este es el código que utilizo para sumar por color, si alguien puede ayudarme a sumarle la condicionante de número de registro me sería de gran ayuda:
Function SUMARPORCOLOR(CeldaReferencia As Range, RangoSeleccion As Range, Condicion As Boolean) As Double
Dim celdaSeleccionada As Range
For Each celdaSeleccionada In RangoSeleccion
If Condicion = True Then
If celdaSeleccionada.Interior.ColorIndex = CeldaReferencia.Interior.ColorIndex Then
SUMARPORCOLOR = SUMARPORCOLOR + celdaSeleccionada.Value
End If
Else
If celdaSeleccionada.Interior.ColorIndex <> CeldaReferencia.Interior.ColorIndex Then
SUMARPORCOLOR = SUMARPORCOLOR + celdaSeleccionada.Value
End If
End If
Next
End Function

Valora esta pregunta


0