Поделиться через


Функция АСЧ

Возвращает значение типа Double, задающее амортизацию актива по кумулятивному методу за указанный период.

Синтаксис

SYD(cost, salvage, life, period)

Функция SYD имеет следующие именованные аргументы:

Part Описание
стоить Обязательно. Тип Double; указывает начальную стоимость актива.
спасение имущества Обязательно. Тип Double; указывает ценность актива в конце его срока службы.
Жизнь Обязательно. Тип Double; указывает продолжительность срока службы актива.
период Обязательно. Тип Double; указывает период, за который рассчитывается амортизация актива.

Замечания

Аргументы срока жизни и периода должны быть выражены в одних и том же единицах. Например, если аргумент life задается в месяцах, аргумент period должен также задаваться в месяцах. Все аргументы должны быть положительными числами.

Пример

В этом примере функция SYD используется для возврата амортизации актива за указанный период с учетом начальной стоимости актива (InitCost), значения спасения в конце срока использования актива (SalvageVal) и общего срока жизни актива в годах (LifeTime). Период в годах, для которого рассчитывается амортизация, — 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) & "."

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.