Sumar la diferencia según dato de otra celda

Tengo un celda en este caso AW5 con un valor fijo, y por otro las celdas de E4 A P4 con nombre Ene a Dic y debajo de estas ingreso valores de cobro de cada mes deberá ser igual a AW5, pero en ocaciones se paga menos valor, necesito me sume la diferencia que podría existir si el valor es menor, esto puede ocurrir en varia en el rango E5 a P5, esta suma de valores menores y los muestre como resultado. Se puede hacer una Función.

Respuesta
1

¿Por qué en vez de explicarlo con texto y tener que imaginar cómo queda no pones una foto aquí o cuelgas el excel?

Te doy una página para colgar archivos y poder verlos:

https://www.mediafire.com 

A ver si es ésto lo que quieres (no estaría mal que esta foto la hubieras enviado de tu excel para verlo de un vistazo)

Si es eso, después te digo la fórmula. Si no lo es, aclara como sería.

Estimado

Subir el archivo y cambie la celda AW5 por W5:

La función no suma bien, adjunto

Trozo de archivo y cambie la celda AW5 por W5..

Además subir el archivo donde me indicaste, haber si lo puedes mirar, lo ideal una función, son muchas líneas http://www.mediafire.com/file/92rjk1ee943vb7c/Contratos_GO_2018_VER3_06-07-18.xlsm/file

Lo tienes resuelto. Te lo he dejado en este enlace:

http://www.mediafire.com/file/adk7ixfi362111c/Contratos+GO+2018+VER3+06-07-18-revisado.xlsm 

Esa suma de "Sumar_menores" es la opción de Visual Basic que te ha dado el otro experto. No sé por qué no funciona (no soy experto en Visual), pero te dejo la mía en el excel, que sí funciona.

Si te sirvió.

Perdón, el enlace que te pasé no era. Es éste:

http://www.mediafire.com/file/kb523rm2jl1h72j/Contratos_GO_2018_VER3_06-07-18-revisado.xlsm/file 

Prueba y me dices si te funciona bien.

Funciona, pero si revisas el archivo existen numero negativos, que no se pagaron es necesario dejarlos para ver cuanto se debía pagar y esos debían sumarse como pendiente, paro al pacer no lo hace.

Vamos a ver.

Las sumas son correctas. Las diferencias con la celda W5 también son correctas. Lo que, bajo mi punto de vista no es correcto es que haya celdas con números negativos. Si no se han pagado, deberían tener un CERO en lugar de un número negativo. Y así el cálculo funciona perfectamente.

1 respuesta más de otro experto

Respuesta
1

¿Es esto lo que buscas?, la fórmula funciona así, seleccionas el rango de datos de enero a febrero, la función ignora los espacios en blanco y suma las diferencias menores a lo que tengas en la celda AW5, en el ejemplo la suma de las diferencias es igual a 5500. Abajo de esta imagen esta la función

Function sumar_menores(rango As Range, valor As Single) As Single
Set datos = rango
cuenta = WorksheetFunction.CountIf(datos, ">0")
X = 1
For i = 1 To cuenta
    pago = datos.Cells(1, i)
    If pago < valor Then
        If X = 1 Then suma = valor - pago
        If X > 1 Then suma = ((valor - pago) + suma)
        X = X + 1
    End If
Next i
sumar_menores = suma
set datos=nothing
End Function

Estimado

La función no suma bien, adjunto

trozo de archivo y cambie la celda AW5 por W5

Veamos viendo tu imagen deduzco lo siguiente que el valor mensual lo tomas de la columna con el titulo CPL y que ese valor lo comparas con el valor de cada mes basado en esto hice un ejercicio manual y con macro, lo que esta en rojo indica que el valor es mayor a la cantidad en W5 es decir que tienes un saldo a favor, así que esos valores con descartados por la función que he creado, los valores amarillo el de la columna B es calculado con la función y los valores con la columna C los calcule manualmente para validar el resultado que arroja la función como ves los resultados con iguales, la macro calcula las diferencias de los valores menores mensuales a la columna W5, si no es esto lo que buscas entonces por favor anexa un ejemplo de lo que necesitas con el resultado esperado

Funciona pero si tengo números negativos al parecer no,

Adjunto link de mi archivo, si puedes revisarlo

http://www.mediafire.com/file/92rjk1ee943vb7c/Contratos_GO_2018_VER3_06-07-18.xlsm/file 

Checa si esto es lo que buscas

y esta es la funcion 

Function sumar_menores(rango As Range, valor As Single) As Single
Set datos = rango
With datos
    c = .Columns.Count
    ReDim matriz(c)
    x = 0
    For i = 1 To c
        pago = .Cells(1, i)
        If pago < valor Then
            If pago > 0 Then matriz(i) = valor - pago
            If pago < 0 Then matriz(i) = valor + pago
        Else
            x = x + 1
        End If
    Next i
End With
With WorksheetFunction
    sumar_menores = .Sum(matriz)
End With
Set datos = Nothing
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas