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)
)
)