DDB

适用于:计算列计算表Measure视觉计算

使用双减余额法返回指定时间段内资产的折旧值,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])
  )
)