杜邦分析法
什么是杜邦分析法?
杜邦分析法是一种最经典的财务指标分析方法,具体来说,它是一种用来评价企业盈利能力和股东权益回报水平,从财务角度评价企业绩效的一种方法。
杜邦分析法的框架逻辑

净资产收益率可以分解为三个财务指标的乘积。
净资产收益率 = 销售净利率 X 资产周转率 X 权益乘数
(1)销售净利率
反映企业所卖产品利润率的高低,即盈利能力。
销售净利率 = 净利润 / 销售收入
(2)资产周转率
反映企业的资产运转效率,一般而言,如果资产周转率高,则说明企业 “原材料— 加工— 销售— 收回现金— 再采购原材料” 这一个完整的经营流程运行得很快,即营运能力。
资产周转率 = 销售收入 / 总资产
(3)权益乘数
反映企业负债率的高低,权益乘数高,说明企业的负债率高,依靠高额负债支持经营。
权益乘数 = 总资产 / 净资产(权益) = 1 / (1-资产负债率)
杜邦分析法其实就是以ROE为核心,自上而下拆分的一个金字塔结构:
案例实践
杜邦分析法的三个步骤:
第一步:从净资产收益率(ROE)开始,根据财务三大表(主要是资产负债表和利润表)逐步分解计算各指标。
第二步:将计算出的指标填入杜邦分析图。
第三步:逐步进行前后期对比分析,也可以进行企业间的横向对比分析,分析影响了ROE的指标,找到原因。
1. 创建项目

2. 创建数据源
示例中我们使用的示例数据为: 利润表.xlsx 、资产负债表.xlsx

创建Excel数据源-利润表:

创建Excel数据源-资产负债表:

3. 创建数据集

创建对应的数据集 - 利润表、资产负债表:

4. 创建数据词典
新建数据词典 - 月份值范围:

数据词典内容配置:

新建数据值:

在数据标准管理中进行关联数据词典:

5. 创建数据模型
返回到企业界面:

数据建模:

数据仓库逻辑分层简介:

在模型中心进行逻辑分层:

批量导入功能:

批量导入参考模板:数据模型-利润表-资产负债表.xlsx

DWS主题层创建 - 利润表 实体:

DWS主题层创建 - 资产负债表 实体:

创建完成后部署模型:

在AWS应用层创建实体:

AWS应用层 - 创建财务数据表实体,并添加数据字段:
以利润表为主表对资产负债表进行合并,然后建立内部输出,输出表名设置为“财务数据表”;

增加计算列:

所有计算列 - 列表:
| 字段名称 | 字段编码 | 表达式 |
|---|---|---|
| 净利润 | netProfit | If('financial_data'[科目ID]=500,'financial_data'[当前金额],0) |
| 销售收入 | salesRevenue | If('financial_data'[科目ID]=100,'financial_data'[当前金额],0) |
| 总资产 | totalAssets | If('financial_data'[项目ID]=100,'financial_data'[期末金额],0) |
| 总负债 | totalLiabilities | If('financial_data'[项目ID]=200220999,'financial_data'[期末金额],0) |
| 营业外收入 | nonOperatingIncome | If('financial_data'[科目ID]=300010,'financial_data'[当前金额],0) |
| 营业外成本 | nonOperatingCosts | If('financial_data'[科目ID]=300020,'financial_data'[当前金额],0) |
| 全部成本 | fullCost | If('financial_data'[科目ID]=200,'financial_data'[当前金额],0) |
| 所得税费用 | incomeTaxExpenses | If('financial_data'[科目ID]=400010,'financial_data'[当前金额],0) |
| 长期投资 | longTermInvestments | If('financial_data'[项目ID]=100200990,'financial_data'[期末金额],0) |
| 流动资产 | currentAssets | If('financial_data'[项目ID]=100100990,'financial_data'[期末金额],0) |
| 销售费用 | sellingExpenses | If('financial_data'[科目ID]=200100,'financial_data'[当前金额],0) |
| 财务费用 | financialExpenses | If('financial_data'[科目ID]=200120,'financial_data'[当前金额],0) |
| 管理费用 | overhead | If('financial_data'[科目ID]=200110,'financial_data'[当前金额],0) |
| 货币资金 | monetaryFunds | If('financial_data'[项目ID]=100100010,'financial_data'[期末金额],0) |
| 应收账款 | accountsReceivable | If('financial_data'[项目ID]=100100060,'financial_data'[期末金额],0) |
| 预付账款 | prepayments | If('financial_data'[项目ID]=100100070,'financial_data'[期末金额],0) |
| 存货 | inventory | If('financial_data'[项目ID]=100100150,'financial_data'[期末金额],0) |
| 其他流动资产 | otherCurrentAssets | If('financial_data'[项目ID]=100100170,'financial_data'[期末金额],0) |
计算列举例:
净利润

销售收入

6. 发布数据模型

7. 设置模型权限


8. 创建数据指标
创建指标数据标准:

设置数据类型:

选择数据来源:

设置指标表达式:

发布数据指标:

所有指标列表:
| 指标编码 | 指标名称 | 指标表达式 |
|---|---|---|
| net_profit_margin_on_sales | 销售净利润率 | Sum('financial_data'[净利润])/Sum('financial_data'[销售收入]) |
| asset_liability_ratio | 资产负债率 | Sum('financial_data'[总负债])/Sum('financial_data'[总资产]) |
| equity_multiplier | 权益乘数 | 1/(1-'financial_data'[资产负债率]) |
| asset_turnover | 资产周转率 | Sum('financial_data'[销售收入])/Sum('financial_data'[总资产]) |
| roe | 净资产收益率 | 'financial_data'[销售净利润率]*'financial_data'[资产周转率]*'financial_data'[权益乘数] |
| return_on_assets | 资产净利率 | 'financial_data'[销售净利润率]*'financial_data'[资产周转率] |
| other_profits | 其他利润 | Sum('financial_data'[营业外收入])-Sum('financial_data'[营业外成本]) |
发布所有创建好的数据指标:

9. 创建数据流
9.1 新建两个输入数据集,引入上一步添加的两张表(利润表、资产负债表),然后在利润表上添加“项目ID”、“项目名称”、“期初金额”、“期末金额”共4个计算字段(此步骤很重要,利润表中这4个字段不存在,而在数据合并时利润表中的字段需要与资产负债表对应,否则合并后的表这4个字段数据会丢失)。
9.2 以利润表为主表对资产负债表进行合并,然后建立内部输出,输出表名设置为财务数据表 ;

输入数据集









10. 创建仪表板

添加标签列表:

手动添加数据源:

添加指标并绑定实际值:

设置每个指标的赛选器,实现按年份来筛选数据:

最终效果:
