其他分享
首页 > 其他分享> > DAX折旧计算和分摊模型 - Power BI

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,各产品分摊的折旧矩阵图)

当各产品的销量组合发生变动时,分摊的折旧额会自动更新,从而使得折旧的分摊实现智能化和自动化,实时应对业务层面发生的变化。

 

标签:计算,Power,资产,BI,折旧,产品,维度,分摊,DAX
来源: https://www.cnblogs.com/wishwise/p/15429989.html