DB

применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления

Возвращает амортизацию актива в течение указанного периода с помощью метода fixed-уменьшения баланса.

Синтаксис

DAX
DB(<cost>, <salvage>, <life>, <period>[, <month>])

Параметры

Срок Определение
cost Начальная стоимость ресурса.
salvage value в конце амортизации (иногда называется спасением value актива). Это value может быть 0.
life Количество периодов, в течение которых ресурс не рекомендуется (иногда называется полезной жизнью актива).
period Период, для которого требуется calculate амортизации. Период должен использовать те же единицы, что и время жизни. Должно быть от 1 до 1 and жизни (включительно).
month (Необязательно) Количество месяцев в firstyear. If month опущено, предполагается, что 12.

Возврат Value

Амортизация за указанный период.

Замечания

  • Метод fixed-уменьшения баланса вычисляет амортизацию на fixedrate. DB использует следующие формулы для calculate амортизации за период:

    (costtotal амортизация от предыдущих периодов)×rate

    где:

    • $\text{rate} = 1 - ((\frac{\text{salvage}}{\text{cost}})^{{\frac{1}{\text{life}})\text{, округленное до трех десятичных знаков}$
  • Амортизация для firstandlast периодов является особым случаем.

    • В течение first периода DB используется следующая формула:

      cost×rate×month12

    • В течение last периода DB используется следующая формула:

      (costtotal амортизация от предыдущих периодов)×rate×(12month)12

  • период andmonth округляется до ближайшего целого числа.

  • Возвращается errorif:

    • стоимость < 0.
    • salvage < 0.
    • жизнь < 1.
    • период < 1 or период > жизни.
    • month < 1 ormonth> 12.
  • Эта функция not поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах or правилах безопасности на уровне строк (RLS).

Примеры

Пример 1

Следующий запрос DAX:

DAX
EVALUATE
{
  DB(1000000, 0, 6, 1, 2)
}

Возвращает амортизацию актива в last два месяца firstyear, предполагая, что он будет стоить $0 после 6 лет.

[Value]
166666.666666667

Пример 2

Ниже вычислится общая амортизация all активов в течение разных лет за их время существования. Здесь firstyear включает только 7 месяцев амортизации, andlastyear включает только 5 месяцев.

DAX
DEFINE
VAR NumDepreciationPeriods = MAX(Asset[LifeTimeYears])+1
VAR DepreciationPeriods = GENERATESERIES(1, NumDepreciationPeriods)
EVALUATE
ADDCOLUMNS (
  DepreciationPeriods,
  "Current Period Total Depreciation",
  SUMX (
    FILTER (
      Asset,
      [Value] <= [LifetimeYears]+1
    ),
    DB([InitialCost], [SalvageValue], [LifetimeYears], [Value], 7)
  )
)