DB
применяется:вычисляемый столбец
вычисляемой таблицы
измерение
визуального вычисления
Возвращает амортизацию актива в течение указанного периода с помощью метода фиксированного снижения баланса.
Синтаксис
DB(<cost>, <salvage>, <life>, <period>[, <month>])
Параметры
Срок | Определение |
---|---|
cost |
Начальная стоимость ресурса. |
salvage |
Значение в конце амортизации (иногда называется значением спасения ресурса). Это значение может быть равно 0. |
life |
Количество периодов, в течение которых ресурс не рекомендуется (иногда называется полезной жизнью актива). |
period |
Период, для которого требуется вычислить амортизацию. Период должен использовать те же единицы, что и время жизни. Должно быть от 1 до жизни (включительно). |
month |
(Необязательно) Количество месяцев в первом году. Если месяц опущен, предполагается, что он равен 12. |
Возвращаемое значение
Амортизация за указанный период.
Замечания
Метод фиксированного снижения баланса вычисляет амортизацию с фиксированной скоростью. DB использует следующие формулы для вычисления амортизации за период:
$$(\text{cost} - \text{total амортизация от предыдущих периодов}) \times \text{rate}$$
где:
- $\text{rate} = 1 - (((\frac{\text{salvage}}}{\text{cost}})^{{\frac{1}{\text{life}})\text{, округленный до трех десятичных знаков}$
Амортизация для первых и последних периодов является особым случаем.
В течение первого периода DB использует следующую формулу:
$$\frac{\text{cost} \times \text{rate} \times \text{month}}{12}$$
В течение последнего периода DB использует следующую формулу:
$$\frac{(\text{cost} - \text{total амортизация от предыдущих периодов}) \times \text{rate} \times (12 - \text{month})}{12}$$
период и месяц округляются до ближайшего целого числа.
Если возвращается ошибка:
- стоимость < 0.
- salvage < 0.
- жизнь < 1.
- период < 1 или период > жизни.
- месяц < 1 или месяц > 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)
)
)