共用方式為


DB

適用於:匯出數據行計算數據表量值視覺計算

使用固定遞減餘額方法,傳回指定期間資產的折舊。

語法

DB(<cost>, <salvage>, <life>, <period>[, <month>])

參數

術語 定義
cost 資產的初始成本。
salvage 折舊結束時的值(有時稱為資產的打撈值)。 此值可以是 0。
life 資產被取代的期間數(有時稱為資產的有用壽命)。
period 您想要計算折舊的期間。 期間必須使用與生命相同的單位。 必須介於 1 到生命之間(包容性)。
month (選擇性)第一年的月數。 如果省略 month,則會假設為 12。

傳回值

指定期間內的折舊。

言論

  • 固定遞減餘額方法會以固定比率計算折舊。 DB 會使用下列公式來計算期間折舊:

    $$(\text{cost} - \text{舊期間折舊總計}) \times \text{rate}$$

    哪裡:

    • $\text{rate} = 1 - (\frac{\text{salvage}}}{\text{cost}})^{(\frac{1}{\text{life}})})\text{,四捨五入為三個小數位數}$
  • 第一個和最後一個期間折舊是一個特殊案例。

    • 在第一個期間,DB 使用此公式:

      $$\frac{\text{cost} \times \text{rate} \times \text{month}}{12}$$

    • 在最後一個期間,DB 使用此公式:

      $$\frac{(\text{cost} - \text{total depreciation from prior periods}) \times \text{rate} \times (12 - \text{month})}{12}$$

  • 句點和月份會四捨五入為最接近的整數。

  • 如果:

    • 成本 < 0。
    • 打撈 < 0。
    • 生活 < 1.
    • 期間 < 1 或週期 > 生命。
    • month < 1 或 month > 12。
  • 在匯出數據行或數據列層級安全性 (RLS) 規則中使用時,不支援在 DirectQuery 模式中使用此函式。

例子

範例 1

下列 DAX 查詢:

EVALUATE
{
  DB(1000000, 0, 6, 1, 2)
}

傳回第一年過去兩個月的資產折舊,假設在 6 年後價值 \$0。

[值]
166666.666666667

範例 2

下列計算存留期內所有資產的總折舊。 在這裡,第一年只包含7個月的折舊,而去年只包含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)
  )
)