Share via


Función DDB

Devuelve un valor Double que especifica la depreciación de un activo durante un período de tiempo específico mediante el método de doble disminución del saldo o cualquier otro método que especifique.

Sintaxis

DDB(cost, salvage, life, period, [ factor ])

La función DDB tiene estos argumentos con nombre:

Parte Descripción
Costo Obligatorio. Doble especificación del costo inicial del recurso.
Salvamento Obligatorio. Doble especificación del valor del recurso al final de su vida útil.
Vida Obligatorio. Doble especificación de la duración útil del recurso.
Período Obligatorio. Doble especificación del período para el que se calcula la depreciación de activos fijos.
Factor Opcional. Variant que especifica la velocidad a la que disminuye el saldo. Si se omite, se asume el valor 2 (método de depreciación por doble disminución).

Comentarios

El método de depreciación por doble disminución de balance calcula la depreciación a un ritmo acelerado. La depreciación es mayor en el primer período y se reduce en períodos sucesivos.

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.

La función DDB usa la fórmula siguiente para calcular la depreciación en un período determinado:

Depreciación / período = ((costo - recuperado) * factor) / vida útil

Ejemplo:

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

Dim Fmt, InitCost, SalvageVal, MonthLife, LifeTime, DepYear, Depr
Const YRMOS = 12    ' Number of months in a year.
Fmt = "###,##0.00"
InitCost = InputBox("What's the initial cost of the asset?")
SalvageVal = InputBox("Enter the asset's value at end of its life.")
MonthLife = InputBox("What's the asset's useful life in months?")
Do While MonthLife < YRMOS    ' 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 / YRMOS    ' Convert months to years.
If LifeTime <> Int(MonthLife / YRMOS) Then
    LifeTime = Int(LifeTime + 1)    ' Round up to nearest year.
End If 
DepYear = CInt(InputBox("Enter year for depreciation calculation."))
Do While DepYear < 1 Or DepYear > LifeTime
    MsgBox "You must enter at least 1 but not more than " & LifeTime
    DepYear = InputBox("Enter year for depreciation calculation.")
Loop
Depr = DDB(InitCost, SalvageVal, LifeTime, DepYear)
MsgBox "The depreciation for year " & DepYear & " is " & _
Format(Depr, 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.