DB
使用 fixed递减余额方法返回指定时间段内资产的折旧值。
语法
DB(<cost>, <salvage>, <life>, <period>[, <month>])
参数
术语 | 定义 |
---|---|
cost |
资产的初始成本。 |
salvage |
折旧结束时的 value(有时称为资产的打捞 value)。 此 value 可以为 0。 |
life |
资产被贬值的时间段数(有时称为资产的有用寿命)。 |
period |
要 calculate 折旧的时间段。 句点必须使用与生命相同的单位。 必须介于 1 and 生命(含)之间。 |
month |
(可选)firstyear中的月数。 省略 Ifmonth,假定为 12。 |
返回 Value
指定时间段内折旧值。
言论
fixed递减余额方法计算 fixedrate折旧。 DB 使用以下公式在一段时间内 calculate 折旧:
$$(\text{cost} - \text{total depreciation from prior periods}) \times \text{rate}$$
哪里:
- $\text{rate} = 1 - ((\frac{\text{salvage}}}{\text{cost}})^{(\frac{1}{\text{life}})})\text{, rounded to three decimal places}$
first and last 周期的折旧是一种特殊情况。
对于 first 期间,DB 使用此公式:
$$\frac{\text{cost} \times \text{rate} \times \text{month}}{12}$$
对于 last 期间,DB 使用此公式:
$$\frac{(\text{cost} - \text{total depreciation from priors}) \times \text{rate} \times (12 - \text{month})}{12}$$
句点 andmonth 舍入为最接近的整数。
if返回 error:
- 成本 < 0。
- 打捞 < 0。
- 生活 < 1.
- 期间 < 1 or 期 > 生活。
- month < 1 ormonth> 12。
在计算列 or 行级别安全性 (RLS) 规则中使用时,not 支持在 DirectQuery 模式下使用此函数。
例子
示例 1
以下 DAX 查询:
EVALUATE
{
DB(1000000, 0, 6, 1, 2)
}
返回 firstyearlast 两个月的资产折旧值,假设在 6 年后将值 \$0。
[Value] |
---|
166666.666666667 |
示例 2
下面计算 all 资产在其生存期内的不同年份的总折旧。 此处,firstyear 仅包括 7 个月的折旧,andlastyear 仅包括 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)
)
)