
Programar función para cálculo basado en condiciones
Publicado por Luis (3 intervenciones) el 27/07/2015 17:18:52
Buenos días
No sé mucho del tema de macros y programación, aunque estoy muy interesado en aprender de estos temas. como parte de mis tareas necesito hacer cálculos de los impuestos al salario que deben retenerse a los empleados y se me ocurrió hacer una función en excel que haga más eficiente el cálculo, en la práctica el tema de las retenciones se maneja así
a. si ud gana menos de 750.000 no paga nada.
b. si ud gana entre 754.000 y 1.100.000 paga un 10% de la diferencia entre esos dos montos
c. Si gana más de 1.100.000 paga el 15% de lo que gane sobre 1.100.000 más el punto b.
Por ejemplo: si ud gana 800.000 pagaría 4.600 (800.000-754.000)*10% = 4.600.
Si ud gana 1.200.000 pagaría 49.600 (34.600+15.000) esto sale de (1.100.000-754.000)*10% + (1.200.000-1.100.000)*15%
por ende yo quería programar una función con variables, pues cada año los montos cambian
y plantee la siguiente función:
Function ISR_Salario(SB, BI1, PBI1, BI2, PBI2)
If SB <= BI1 Then
ISR_Salario = 0
Else
If SB >= BI2 Then
ISR_Salario = ((BI2 - BI1) * PBI1) + (BI2 - SB) * BI2
Else
ISR_Salario = (SB - BI1) * PBI1
End If
End Function
Sé que esta mala porque me da un error, pero queria que ustedes me ayudaran a programarla y afinarla para poder tenerla funcional.
Les agradezco su ayuda en este problema.
Muchas gracias
Luis Araya
No sé mucho del tema de macros y programación, aunque estoy muy interesado en aprender de estos temas. como parte de mis tareas necesito hacer cálculos de los impuestos al salario que deben retenerse a los empleados y se me ocurrió hacer una función en excel que haga más eficiente el cálculo, en la práctica el tema de las retenciones se maneja así
a. si ud gana menos de 750.000 no paga nada.
b. si ud gana entre 754.000 y 1.100.000 paga un 10% de la diferencia entre esos dos montos
c. Si gana más de 1.100.000 paga el 15% de lo que gane sobre 1.100.000 más el punto b.
Por ejemplo: si ud gana 800.000 pagaría 4.600 (800.000-754.000)*10% = 4.600.
Si ud gana 1.200.000 pagaría 49.600 (34.600+15.000) esto sale de (1.100.000-754.000)*10% + (1.200.000-1.100.000)*15%
por ende yo quería programar una función con variables, pues cada año los montos cambian
y plantee la siguiente función:
Function ISR_Salario(SB, BI1, PBI1, BI2, PBI2)
If SB <= BI1 Then
ISR_Salario = 0
Else
If SB >= BI2 Then
ISR_Salario = ((BI2 - BI1) * PBI1) + (BI2 - SB) * BI2
Else
ISR_Salario = (SB - BI1) * PBI1
End If
End Function
Sé que esta mala porque me da un error, pero queria que ustedes me ayudaran a programarla y afinarla para poder tenerla funcional.
Les agradezco su ayuda en este problema.
Muchas gracias
Luis Araya
- Ejemplo.zip(13,3 KB)
Valora esta pregunta


0