Compartir a través de


Función SYD

Devuelve un valor Double que especifica la depreciación de la suma de años de un activo para un período determinado.

Sintaxis

SYD(cost, salvage, life, period)

La función SYD tiene estos argumentos con nombre:

Parte Descripción
costar Obligatorio. Valor Double que especifica el coste inicial del activo.
salvamento Obligatorio. Valor Double que especifica el valor del activo al final de su vida útil.
vida Obligatorio. Valor Double que especifica la longitud de la vida útil del activo.
periodo Obligatorio. Valor Double que especifica el período para el que se calcula la depreciación del activo.

Comentarios

Los argumentoslife y period deben expresarse en las mismas unidades. Por ejemplo, si life se proporciona en meses, period también debe indicarse en meses. Todos los argumentos deben ser números positivos.

Ejemplo

En este ejemplo se usa la función SYD para devolver la depreciación de un activo durante un período especificado dado el costo inicial del activo (InitCost), el valor de recuperación al final de la vida útil del activo (SalvageVal) y la vida total del activo en años (LifeTime). El período en años para el que se calcula la depreciación es PDepr.

Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, PDepr
Const YEARMONTHS = 12    ' Number of months in a year.
Fmt = "###,##0.00"    ' Define money format.
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("What's the asset's value at the end of its life?")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YEARMONTHS    ' Ensure period is >= 1 year.
    MsgBox "Asset life must be a year or more."
    MonthLife = InputBox("What's the asset's useful life in months?")
Loop
LifeTime = MonthLife / YEARMONTHS    ' Convert months to years.
If LifeTime <> Int(MonthLife / YEARMONTHS) Then
    LifeTime = Int(LifeTime + 1)    ' Round up to nearest year.
End If 
DepYear = CInt(InputBox("For which year do you want depreciation?"))
Do While DepYear < 1 Or DepYear > LifeTime
    MsgBox "You must enter at least 1 but not more than " & LifeTime
    DepYear = CInt(InputBox("For what year do you want depreciation?"))
Loop
PDepr = SYD(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & Format(PDepr, Fmt) & "."

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.