DAX折舊計算和分攤模型 - Power BI


DAX折舊計算和分攤模型

作者:張輝 - wishwise

目標

  1. 計算各期間的折舊金額
  2. 在利潤預測中,自動計算折舊金額在不同產品銷量組合的分攤。

計算各期間的折舊金額

計算各期間的折舊金額,我們可以充分運用DAX函數語言中的相關財務函數來快速計算,如

SLN – 直線折舊法

SYD – 年數總和折舊法

DB – 余額遞減法

DDB – 雙倍余額遞減法

這些函數的具體功能,大家可以查閱微軟文檔,這里不做詳細解釋。

數據准備

在此模型中,准備如下的數據

  1. 資產類別(維度表 Dim_CapexDetails)

 

(圖1-1,維度表中定義了資產類別的折舊方法和對應折舊年限,如建築,采用直線法(SLN)折舊,折舊期限20年/240月)

 

  1. 使用中的資產清單(行為表 Fact_Investment)

 

(圖1-2,此行為表為資產清單列表,每個行項目中包含各項資產的金額,資產類別,折舊開始時間,以及殘值,以及該資產服務的產品范圍)

 

編寫度量值來計算折舊的思路如下:

  1. 通過迭代Fact_Investment表中的每一行(資產),累加計算所有資產的折舊總額。
  2. 因為折舊函數返回的是每一折舊期間的折舊額,因此在迭代Fact_Investment表中的每一行(資產)時,再次嵌套迭代計算每個折舊期間的折舊額。
  3. 根據資產維度表中定義的折舊方法,為不同資產應用不同的折舊方法。

依此思路,可以編寫折舊的度量值如下:

 

 

 

 

(圖1-3)在此度量值中,迭代計算仍然保留着數據的世系關系(data linage),因此依然可以通過日期表和資產維度來篩選折舊數據,並可以對折舊數據進行分析。

 

(圖1-4,篩選特定期間的折舊表,並依據資產的類別進行組合)

到這里,我們就完成了各期間的折舊金額的計算。

 

 

折舊金額在不同產品銷量組合的分攤

 

在計算不同產品的毛利時,我們都需要將折舊金額在不同產品之間進行分攤,對於生產工藝接近的不同產品,按照產量分攤是常用的方法。此外,在利潤預測中,不同的產品組合將會對折舊分攤產生影響,利用DAX函數語言我們能夠准確地且有效率地按照不同產品組合,將折舊在產品之間分攤。

數據准備

除了前述的資產維度表(圖1-1)和資產清單(圖1-2)之外,我們再准備如下2張表。

  1. 產品的維度表

 

(圖2-1,產品維度表定義產品的代碼,名稱以及產品組別)

  1. 各產品的銷售預測

 

(圖2-2,各產品的銷售預測 )

 

圖2-2展示的是矩陣表格,在power BI中實際的表格是一維數據表。

 

 

(圖2-3,一維形式的銷售數據)

思路詳解

  1. 折舊分攤需滿足以下條件
    1. 所有的當期折舊全部分攤,即各產品分攤折舊額之和等於當期折舊總額。
    2. 為特定產品或產品組服務的資產折舊分攤到對應的產品或產品組。

      例如,生產手機需要的模具的折舊,只能在手機的產品中分攤,而不能分攤到電腦產品中。而裝配線因同時用於手機和電腦兩個產品的生產,則裝配線的折舊需由兩個產品共同分攤。

  2. 折舊分攤模型的設計思路
    圖2-4展示了折舊分攤的路徑。

  

 

 (圖2-4 折舊分攤的路徑)

 

 

因為需按照產品分攤,我們可以在一維的產品表(圖2-3)中添加計算列,利用計算列提供的迭代,對產品表中的每一行計算對應的折舊費用,在計算時,關鍵要點如下

1.對於(產品表)當前行,只考慮服務於該行對應產品的資產折舊,即

                    i.      承擔專門服務該產品的資產(專用設備)的全部折舊

                   ii.      分擔通用資產(非專用設備)按照產量為權重進行分攤的部分折舊

2.作為分攤權重的產量,統計范圍需注意以下幾點

                   i.      統計產量的期間和折舊的期間對應,例如,待分攤的折舊金額為月度數字,則對應的產量應同樣按月度統計。

                   ii.      產量作為分攤依據,不同資產服務的產品不同,則對應的產量不同。例如,專用於產品phone-A的設備,分攤的產量即為phone-A的產量(產品phone-A吸收該設備的全部折舊),用於生產所有phone類別的設備,分攤的產量為類別phone的所有產量。

3.迭代計算

對於產品表的每一行,需要迭代資產清單Fact_Investment,以計算每一項資產,應在當前產品上分攤多少金額

    算法的公式表達

 

 

 

 

 

 

  1. DAX 函數語句

 

 

 

 (圖2-5,計算列的DAX函數)

結果

              計算列顯示的結果如圖2-6所示,

 

(圖2-6,計算列顯示對應產品所分攤的折舊額)

各產品分攤的折舊在矩陣表中按產品層次和時間維度顯示

 

(圖2-7,各產品分攤的折舊矩陣圖)

當各產品的銷量組合發生變動時,分攤的折舊額會自動更新,從而使得折舊的分攤實現智能化和自動化,實時應對業務層面發生的變化。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM