NOSQL

Применяется к:вычисляемой таблице вычисляемой таблицы Вычисление визуального элемента измерениявычисляемой таблицы

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

Синтаксис

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

Параметры

Термин Определение
стоимость Начальная стоимость актива.
Спасти Значение в конце амортизации (иногда называется значением спасения ресурса). Может иметь значение 0.
Жизнь Количество периодов, в течение которых ресурс не рекомендуется (иногда называется полезной жизнью актива).
Период Период, для которого требуется вычислить амортизацию. Период должен использовать те же единицы, что и время жизни. Должно быть от 1 до жизни (включительно).
Месяц (Необязательно) Количество месяцев в первом году. Если месяц опущен, предполагается, что он равен 12.

Возвращаемое значение

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

Замечания

  • Метод фиксированного снижения баланса вычисляет амортизацию с фиксированной скоростью. База данных использует следующие формулы для вычисления амортизации за период:

    $$(\text{cost} - \text{total амортизация от предыдущих периодов}) \times \text{rate}$$

    где:

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

    • В течение первого периода база данных использует следующую формулу:

      $$\frac{\text{cost} \times \text{rate} \times \text{month}{12}$$

    • В течение последнего периода база данных использует следующую формулу:

      $$\frac{(\text{cost} - \text{total амортизация от предыдущих периодов}) \times \text{rate} \times (12 - \text{month})}{12}$$

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

  • Если возвращается ошибка:

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

Примеры

Пример 1

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

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

Возвращает значение амортизации актива за последние два месяца года. Предполагается, что он будет стоить 0 долл. США через 6 лет.

[значение]
166666.666666667

Пример 2

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

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)
  )
)