Функция ДДОБ
Возвращает значение Double , указывающее амортизацию актива за определенный период времени с помощью метода двойного уменьшения остатка или другого указанного метода.
Синтаксис
DDB(cost, salvage, life, period, [ factor ])
Функция DDB использует следующие именованные аргументы:
Part | Описание |
---|---|
стоить | Обязательно. Значение double , указывающее начальную стоимость ресурса. |
спасение имущества | Обязательно. Значение double , указывающее значение ресурса в конце срока его использования. |
Жизнь | Обязательно. Значение Double , указывающее продолжительность срока использования ресурса. |
период | Обязательно. Double , указывающий период, для которого рассчитывается амортизация активов. |
фактор | Необязательный параметр. Вариант , указывающий скорость уменьшения остатка. Если этот элемент пропущен, предполагается значение 2 (метод двойной амортизации убывающего баланса). |
Замечания
Метод двойной амортизации убывающего баланса вычисляет амортизацию с ускоренной ставкой. Амортизация максимальна за первый период и уменьшается в последующие периоды.
Аргументы срока жизни и периода должны быть выражены в одних и том же единицах. Например, если аргумент life задается в месяцах, аргумент period должен также задаваться в месяцах. Все аргументы должны быть положительными числами.
Функция DDB использует для вычисления амортизации за заданный период следующую формулу:
Амортизация / период = ((стоимость - спасения) * фактор) / срок жизни
Пример
В этом примере функция DDB используется для возврата амортизации актива за указанный период с учетом начальной стоимости (InitCost
), стоимости спасения в конце срока использования актива (SalvageVal
), общего срока жизни актива в годах (LifeTime
) и периода в годах, для которого рассчитывается амортизация (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) & "."
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.