DDB
使用双倍余额递减法或你指定的一些其他方法返回指定期间的资产折旧。
语法
DDB(<cost>, <salvage>, <life>, <period>[, <factor>])
parameters
术语 | 定义 |
---|---|
cost | 资产的原始成本。 |
salvage | 折旧结束时的价值(有时称为资产的残值)。 此值可以为 0。 |
变得生动鲜活 | 对资产进行折旧的周期数(有时称为资产的可用生命周期)。 |
period | 要计算其折旧的周期。 Period 必须使用与 life 相同的单位。 必须介于 1 至 life 之间(含首尾)。 |
factor | (可选)余额递减的速率。 如果省略 factor,则假定为 2(双倍余额递减法)。 |
返回值
指定期间内的折旧。
备注
双倍余额递减法以加速比率计算折旧。 折旧在首个期间内最高,在随后的期间内降低。 DDB 使用以下公式来计算周期的折旧:
$$\text{ Min }((\text{ cost } - \text{ total depreciation from prior periods }) \times (\frac{ \text{ factor } }{ \text{ life } }),(\text{ cost } - \text{ salvage } - \text{ total depreciation from prior periods }))$$
如果不想使用双倍余额递减法,请更改 factor。
如需在折旧大于余额递减计算时切换为直线折旧法,请使用 VDB 函数。
period 舍入为最接近的整数。
如果出现以下情况,则返回错误:
- cost < 0。
- salvage < 0。
- life < 1。
- period < 1 或 period > life。
- factor ≤ 0。
在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
示例
示例 1
以下 DAX 查询:
EVALUATE{ DDB(1000000, 0, 10, 5, 1.5) }
返回第 5$^{ th }$ 年的资产折旧,假设资产在 10 年后价值 \$0。 此计算使用系数 1.5。
[值] |
---|
78300.9375 |
示例 2
下面计算了所有资产在其生命周期中不同年份的总折旧。 此计算使用默认系数 2(双倍余额递减法)。
DEFINEVAR 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]) ))