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计算结果为 TRUEFALSE
  • 在已计算的列或行级安全性 (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