Excel Power Query与Power Pivot结合:TOP-N对象贡献度分析
TOP-N分析法通常用来分析客户、店铺或产品对于整体的贡献度问题。本节内容我们需要指定N个门店,分析这N个门店的产品销售总金额或毛利润对于整体的贡献度,如图所示。
在这个模型中,我们可以根据实际业务的需求,去个性化地选择以产品销售总金额或毛利润为观察对象,分析每个大区的前3名、前5名、前10名及所有门店的业绩对于整体业绩的贡献情况。
该模型主要的功能在于可以根据选择的指标动态地进行筛选,方便我们实时把握贡献最大的TOP-N的门店,开展有针对性的经营活动。下面介绍一下这个模型的具体的建立步骤。
第一部分:数据获取和准备
从Excel工作簿中将所需要的各个表加载进来,原始数据如图所示。
第1步:新新建一个Excel工作簿,依次选择"数据"-"获取数据"-"来自文件"-"从Excel工作簿"选择。如图所示。
第2步:选择原始数据的 Excel工作簿,导入后,在“导航器”界面选择需要加载的工作表,单击“数据转换”按钮。如图所示。
注意:如果明细来自于多个表,则需要对多个表或者多个文件夹中的表使用Power Query进行合并;另外,数据如果不整洁,则要对数据进行清洗,可以参照更多的Power Query的数据清洗功能。
第3步:在Power Query中设置好各个列的数据格式后,选择“关闭并上载至”选项,将数据加载到Power Pivot数据模型中,需要注意的是,如不需要,可不将原始数据加载到工作表中。如图所示。
第4步:在弹出的对话框中选择“仅创建数据连接”按钮,并勾选“将此数据添加到数据模型”选项,最后单击“确定”按钮,就将数据加载到数据模型中了。
第二部分:建立数据模型
然后我们进入到Excel的Power Pivot数据模型中,
第1步:建立日期表。日期表的作用是通过日期表可以对其他表的相关的日期进行筛选。依次选择“设计”-“日期表”-“新建”选项,Power Pivot就会新生成一个日期表,然后根据自己的需要进行修改。如图所示。
第2步:建立表间关系。表间关系如下图所示。由于此次的销售目标表暂时不需要,也可以不建立表间关系。
第三部分:建立分析维度
分析维度主要是通过DAX表达式来完成的。具体如下所示。
第1步:编写基本的度量值。
计算产品销售总金额和销售贡献度(占整体比重),度量值可以分别写为:
产品销售总金额: = SUM('订单明细表'[产品销售金额])
销售贡献度(占整体比重): = DIVIDE([产品销售总金额], CALCULATE([产品销售总金额], ALL('门店表'[门店名称])) )
计算毛利润和毛利润贡献度(占整体比重),度量值可以分别写为:
毛利润: = [产品销售总金额]- SUMX('订单明细表', [产品销售数量] * RELATED('产品表'[产品成本价格]) )
毛利润贡献度(占整体比重): = DIVIDE([毛利润], CALCULATE([毛利润], ALL('门店表'[门店名称])) )
第2步:建立参数表。
分别建立“前N名”和“排序依据”两个参数表。在工作表中先准备好相应的字段和值,再将其添加到数据模型中,这两个参数表不与其他任何表建立关系,如图11-2所示。如图所示。
第3步:编写计算各个大区门店产品销售总金额和毛利润排名的度量值。主要为筛选前N名做准备。度量值如下:
排名: =IF(HASONEVALUE('门店表'[门店名称]), RANKX( ALL('门店表'[门店名称]), IF(MAX('排序依据'[排序依据])= "销售金额", [产品销售总金额], [毛利润]) ))
在上述度量值中,最重要的是RANKX函数的第二个参数。因为要使用“排序依据”这个切片器进行筛选,所以要使用IF函数配合判断切片器筛选的内容,并且匹配合适的排序依据。
第四部分:制作分析报表
将上述的数据使用数据透视表的方式制作数据报表(当然也可以使用链接回表或者多维数据集的方法制作报表)。
第1步:将上述准备好的度量值放置于数据透视表中,并且将相关的切片器添加到数据透视表中。但是当前使用“前N名”和“排序依据”这两个切片器还无法进行筛选,需要进行后续的设置。
第2步:为“排名”列设置升序排列。首先单击“门店名称”字段的筛选按钮,在弹出的下拉列表中选择“其他排序选项”选项,然后在弹出的“排序(门店名称)”对话框的“升序排序(A到Z)依据”下拉列表中选择“排名”选项,最后单击“确定”按钮,实现对每个大区的门店的排名升序排列,如图所示。
第3步:此时,可以根据“排序依据”筛选数据了,但是“前N名”切片器还无法进行工作。这里我们可以借助数据透视表的值筛选功能,给筛选设置一个规则即可。例如,当选择“前3名”时,筛选出前3名的数据。所以,度量值可以写为:
筛选条件: = IF([排名] <= MAX('前N名'[名次]), 1, 0)
第4步:单击“门店名称”字段的筛选按钮,在弹出的下拉列表中依次选择“值筛选”→“等于”选项,在弹出的“值筛选(门店名称)”对话框中进行设置。设置如图所示。
经过以上的几个步骤,这个查看TOP-N门店销售和利润贡献度的模型就建立完成了,核心点就是参数表的建立。最后在Power Pivot的管理界面中将不需要在数据透视表里显示的度量值“筛选条件”隐藏即可。
以下为福利部分
小必老师近期新出版的《Excel商务智能:Power Query和Power Pivot数据清洗、建模与分析实战》一书,在上市以来就取得不俗的表现,豆瓣上更是有了9.5分的评分。本书有50+的实战案例,有1G+的随书重难点章节的配套视频。
鉴于此,小必老师给广大的读者送来更多的福利。
更大的福利是,扫码以下的二维码,可以享受作者送出的隐形折扣,近于5折购书的资格,京东自营的隐形5折购书(只49元),直接进入京东无法享受该福利。快快扫码吧。
发布:刘恩惠
审核:陈歆懿
▼点击阅读原文,了解本书详情~
相关文章
- 将Excel转换为word_excel如何将横排变成竖排
- Python办公自动化 | word 文本转 excel
- Excel小技巧 -- 持续更新
- 前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件
- Excel VBA之Range对象
- 100天精通Python丨办公效率篇 —— 07、Python自动化操作 Excel(读写、增删改查、分组统计)
- java:POI导出excel详解编程语言
- MySQL查询结果导出至Excel:一步到位(mysql查询结果导出excel)
- Excel数据快速转移至MySQL(excel转mysql)
- 轻松实现Excel导入MySQL数据库(excel导入mysql数据库)
- 导入Excel数据到Oracle数据库(将excel导入oracle数据库)
- MySQL快速导入Excel数据(mysql导入excel数据)
- 轻松操作:oracle快速导入Excel数据(oracle导入excel数据)
- MYSQL与EXCEL:实现数据管理的双重力量(mysql与excel)
- Oracle将数据输出到Excel中(oracle写excel)
- Excel与Oracle精准大数据统计分析利器(excel和oracle)
- GridView导出Excel实现原理与代码
- 通过剪贴板实现将DataGridView中的数据导出到Excel
- 用python读写excel的方法