DDB
使用双减余额法返回指定时间段内资产的折旧值,or 指定的其他方法。
语法
DDB(<cost>, <salvage>, <life>, <period>[, <factor>])
参数
术语 | 定义 |
---|---|
cost |
资产的初始成本。 |
salvage |
折旧结束时的 value(有时称为资产的打捞 value)。 此 value 可以为 0。 |
life |
资产被贬值的时间段数(有时称为资产的有用寿命)。 |
period |
要 calculate 折旧的时间段。 句点必须使用与生命相同的单位。 必须介于 1 and 生命(含)之间。 |
factor |
(可选)余额下降的 rate。 If 因素被省略,它假定为 2(双下降余额方法)。 |
返回 Value
指定时间段内折旧值。
言论
双下降余额法计算加速 rate折旧。 折旧在 first 周期中最高,and 连续周期减少。 DDB 使用以下公式在一段时间内 calculate 折旧:
$$\text{Min}(\text{cost} - \text{total depreciation from prior periods}) \times (\frac{\text{factor}}{\text{life}}),(\text{cost} - \text{salvage} - \text{total depreciation from priors}))$$
更改因子 ifnot 想要使用双下降余额方法。
使用 VDB 函数 if 在折旧值大于余额递减计算时 switch 直线折旧方法。
句点舍入为最接近的整数。
if返回 error:
- 成本 < 0。
- 打捞 < 0。
- 生活 < 1.
- 期间 < 1 or 期 > 生活。
- 因子≤ 0。
在计算列 or 行级别安全性 (RLS) 规则中使用时,not 支持在 DirectQuery 模式下使用此函数。
例子
示例 1
以下 DAX 查询:
EVALUATE
{
DDB(1000000, 0, 10, 5, 1.5)
}
返回资产在 5$^{th}$ year中的折旧值,假设在 10 年后将值 \$0。 此计算使用因子 1.5。
[Value] |
---|
78300.9375 |
示例 2
下面计算 all 资产在其生存期内的不同年份的总折旧。 此计算使用默认因子 2(双下降余额方法)。
DEFINE
VAR NumDepreciationPeriods = MAX(Asset[LifeTimeYears])
VAR DepreciationPeriods = GENERATESERIES(1, NumDepreciationPeriods)
EVALUATE
ADDCOLUMNS (
DepreciationPeriods,
"Current Period Total Depreciation",
SUMX (
FILTER (
Asset,
[Value] <= [LifetimeYears]
),
DDB([InitialCost], [SalvageValue], [LifetimeYears], [Value])
)
)