DB
使用固定餘額遞減的方法,傳回指定週期的資產折舊。
語法
DB(<cost>, <salvage>, <life>, <period>[, <month>])
參數
詞彙 | 定義 |
---|---|
成本 | 資產的初始成本。 |
salvage | 折舊最後的價值 (有時稱為資產的殘餘價值)。 此值可為 0。 |
生活 | 資產折舊的期數 (有時稱為資產的使用年限)。 |
Period | 要計算折舊的週期。 週期必須與 life 使用相同的單位。 必須介於 1 和 life (含) 之間。 |
個月 | (選擇性) 第一年的月數。 如果省略 month,則會假設為 12。 |
傳回值
指定週期內的折舊。
備註
固定餘額方法會以固定利率計算折舊。 DB 會使用下列公式來計算某個週期的折舊:
$$(\text{cost} - \text{前幾期的折舊總計}) \times \text{利息}$$
其中:
- $\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{前幾期的折舊總計}) \times \text{利息} \times (12 - \text{月})}{12}$$
period 和 month 會四捨五入為最接近的整數。
如果是下列情況,則會傳回錯誤:
- cost < 0。
- salvage < 0。
- life < 1。
- period < 1 或 period > life。
- 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)
)
)