VDB
使用双倍余额递减法或你指定的其他一些方法,返回你指定的任何期间(包括部分期间)的资产折旧。 VDB 表示可变余额递减。
语法
VDB(<cost>, <salvage>, <life>, <start_period>, <end_period>[, <factor>[, <no_switch>]])
parameters
术语 | 定义 |
---|---|
cost |
资产的原始成本。 |
salvage |
折旧结束时的价值(有时称为资产的残值)。 此值可以为 0。 |
life |
对资产进行折旧的周期数(有时称为资产的可用生命周期)。 |
start_period |
要计算其折旧的起始周期。 Start_period 必须使用与 life 相同的单位。 必须介于 1 至 life 之间(含首尾)。 |
end_period |
要计算其折旧的结束周期。 End_period 必须使用与 life 相同的单位。 必须介于 start_period 至 life 之间(含首尾)。 |
factor |
(可选)余额递减的速率。 如果省略 factor,则假定为 2(双倍余额递减法)。 如果不想使用双倍余额递减法,请更改 factor。 有关双倍余额递减法的说明,请参阅 DDB。 |
no_switch |
(可选)一个逻辑值,指定折旧大于余额递减计算时是否切换为直线折旧。 如果省略,则假定 FALSE 。 - 如果no_switch计算结果为 TRUE VDB 不会切换到直线折旧,即使折旧大于余额递减计算也是如此。 - 如果no_switch计算结果为 FALSE 或省略,则当折旧值大于余额递减计算时,VDB 将切换到直线折旧。 |
返回值
指定期间内的折旧。
备注
如果出现以下情况,则返回错误:
- cost < 0。
- salvage < 0。
- life < 1。
- start_period < 1 或 start_period > end_period。
- end_period < start_period 或 end_period > life。
- factor < 0。
- no_switch计算结果为
TRUE
或FALSE
。
在已计算的列或行级安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。
示例
数据 | 描述 |
---|---|
2400 | 初始成本 |
300 | 残值 |
10 | 使用期(年) |
示例 1
以下 DAX 查询:
EVALUATE
{
VDB(2400, 300, 10*365, 0, 1)
}
在 factor 设为 2 的情况下返回资产的第一天的折旧。
[值] |
---|
1.31506849315068 |
示例 2
以下 DAX 查询:
EVALUATE
{
VDB(2400, 300, 10*12, 6, 18, 3)
}
返回 6$^{th}$ 月之间 18$^{th}$ 月之间的资产折旧。 此计算将 factor 设为 3。
[值] |
---|
540.185558199698 |
示例 3
以下 DAX 查询:
EVALUATE
{
VDB(2400, 300, 10, 0, 0.875, 1.5)
}
返回资产在你拥有它的第一个会计年度内的折旧,假设税法限制资产余额递减折旧为 150%。 资产是在会计年度第一季度中期购买的。
[值] |
---|
315 |