DAX折旧计算和分摊模型 - Power BI
作者:互联网
DAX折旧计算和分摊模型
作者:张辉 - wishwise
目标
- 计算各期间的折旧金额
- 在利润预测中,自动计算折旧金额在不同产品销量组合的分摊。
计算各期间的折旧金额
计算各期间的折旧金额,我们可以充分运用DAX函数语言中的相关财务函数来快速计算,如
SLN – 直线折旧法
SYD – 年数总和折旧法
DB – 余额递减法
DDB – 双倍余额递减法
这些函数的具体功能,大家可以查阅微软文档,这里不做详细解释。
数据准备
在此模型中,准备如下的数据
- 资产类别(维度表 Dim_CapexDetails)
(图1-1,维度表中定义了资产类别的折旧方法和对应折旧年限,如建筑,采用直线法(SLN)折旧,折旧期限20年/240月)
- 使用中的资产清单(行为表 Fact_Investment)
(图1-2,此行为表为资产清单列表,每个行项目中包含各项资产的金额,资产类别,折旧开始时间,以及残值,以及该资产服务的产品范围)
编写度量值来计算折旧的思路如下:
- 通过迭代Fact_Investment表中的每一行(资产),累加计算所有资产的折旧总额。
- 因为折旧函数返回的是每一折旧期间的折旧额,因此在迭代Fact_Investment表中的每一行(资产)时,再次嵌套迭代计算每个折旧期间的折旧额。
- 根据资产维度表中定义的折旧方法,为不同资产应用不同的折旧方法。
依此思路,可以编写折旧的度量值如下:
(图1-3)在此度量值中,迭代计算仍然保留着数据的世系关系(data linage),因此依然可以通过日期表和资产维度来筛选折旧数据,并可以对折旧数据进行分析。
(图1-4,筛选特定期间的折旧表,并依据资产的类别进行组合)
到这里,我们就完成了各期间的折旧金额的计算。
折旧金额在不同产品销量组合的分摊
在计算不同产品的毛利时,我们都需要将折旧金额在不同产品之间进行分摊,对于生产工艺接近的不同产品,按照产量分摊是常用的方法。此外,在利润预测中,不同的产品组合将会对折旧分摊产生影响,利用DAX函数语言我们能够准确地且有效率地按照不同产品组合,将折旧在产品之间分摊。
数据准备
除了前述的资产维度表(图1-1)和资产清单(图1-2)之外,我们再准备如下2张表。
- 产品的维度表
(图2-1,产品维度表定义产品的代码,名称以及产品组别)
- 各产品的销售预测
(图2-2,各产品的销售预测 )
图2-2展示的是矩阵表格,在power BI中实际的表格是一维数据表。
(图2-3,一维形式的销售数据)
思路详解
- 折旧分摊需满足以下条件
- 所有的当期折旧全部分摊,即各产品分摊折旧额之和等于当期折旧总额。
- 为特定产品或产品组服务的资产折旧分摊到对应的产品或产品组。
例如,生产手机需要的模具的折旧,只能在手机的产品中分摊,而不能分摊到电脑产品中。而装配线因同时用于手机和电脑两个产品的生产,则装配线的折旧需由两个产品共同分摊。
- 折旧分摊模型的设计思路
图2-4展示了折旧分摊的路径。
(图2-4 折旧分摊的路径)
因为需按照产品分摊,我们可以在一维的产品表(图2-3)中添加计算列,利用计算列提供的迭代,对产品表中的每一行计算对应的折旧费用,在计算时,关键要点如下
1.对于(产品表)当前行,只考虑服务于该行对应产品的资产折旧,即
i. 承担专门服务该产品的资产(专用设备)的全部折旧
ii. 分担通用资产(非专用设备)按照产量为权重进行分摊的部分折旧
2.作为分摊权重的产量,统计范围需注意以下几点
i. 统计产量的期间和折旧的期间对应,例如,待分摊的折旧金额为月度数字,则对应的产量应同样按月度统计。
ii. 产量作为分摊依据,不同资产服务的产品不同,则对应的产量不同。例如,专用于产品phone-A的设备,分摊的产量即为phone-A的产量(产品phone-A吸收该设备的全部折旧),用于生产所有phone类别的设备,分摊的产量为类别phone的所有产量。
3.迭代计算
对于产品表的每一行,需要迭代资产清单Fact_Investment,以计算每一项资产,应在当前产品上分摊多少金额
算法的公式表达
- DAX 函数语句
(图2-5,计算列的DAX函数)
结果
计算列显示的结果如图2-6所示,
(图2-6,计算列显示对应产品所分摊的折旧额)
各产品分摊的折旧在矩阵表中按产品层次和时间维度显示
(图2-7,各产品分摊的折旧矩阵图)
当各产品的销量组合发生变动时,分摊的折旧额会自动更新,从而使得折旧的分摊实现智能化和自动化,实时应对业务层面发生的变化。
标签:计算,Power,资产,BI,折旧,产品,维度,分摊,DAX 来源: https://www.cnblogs.com/wishwise/p/15429989.html