DDB

适用于:计算列计算表度量值视觉计算

使用双倍余额递减法或指定的其他方法返回指定期间资产的折旧值。

语法

DDB(<cost>, <salvage>, <life>, <period>[, <factor>])

参数

术语 定义
cost 资产的初始成本。
salvage 折旧结束时的值(有时称为资产的打捞值)。 此值可以为 0。
life 资产被贬值的时间段数(有时称为资产的有用寿命)。
period 要计算折旧值的时间段。 句点必须使用与生命相同的单位。 必须介于 1 和生命之间(含)。
factor (可选)余额下降的速率。 如果省略因子,则假定为 2(双下降余额方法)。

返回值

指定时间段内折旧值。

言论

  • 双下降余额方法以加速率计算折旧。 折旧在第一个周期中最高,连续周期减少。 DDB 使用以下公式计算一段时间内的折旧值:

    Mincosttotal depreciation from prior periods×factorlifecostsalvagetotal depreciation from prior periods

  • 如果不想使用双下降余额方法,请更改因子。

  • 如果要在折旧大于余额递减计算时切换到直线折旧方法,请使用 VDB 函数。

  • 句点舍入为最接近的整数。

  • 如果出现以下错误,则返回错误:

    • 成本 < 0。
    • 打捞 < 0。
    • 生活 < 1.
    • 句点 < 1 或 > 生命期。
    • 因子≤ 0。
  • 在计算列或行级别安全性 (RLS) 规则中使用时,不支持在 DirectQuery 模式下使用此函数。

例子

示例 1

以下 DAX 查询:

EVALUATE
{
  DDB(1000000, 0, 10, 5, 1.5)
}

返回资产在 5th 年中的折旧值,假设在 10 年后将值 $0。 此计算使用因子 1.5。

[值]
78300.9375

示例 2

下面计算其生存期内所有资产的总折旧值。 此计算使用默认因子 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])
  )
)