PowerBI系列之入门案例动态销售报告
本文将讲解如何从零开始使用PowerBI Desktop制作一份动态销售报告。帮助大家快速入门PowerBI Desktop的操作。我们先来看一下一份动态销售报告的构成。
1、左上角放置了小黎子数据分析的二维码图片,紧接着是切片器,由城市,店长,店铺数据默认情况下是所有的数据,点击下拉框可以进行筛选数据
2、右上角是放置的卡片图,主要用于显示报告分析中重要的指标。
3、中间部分的图表显示的业绩排名,业绩贡献,业绩增长情况
4、左下角的散点图,使用了十字线将所有员工分为四个象限,右上角就是指标最佳的员工,左下角就是指标比较差的人员。圆圈大小代表着业绩金额大小。
5、右下角用表展现店铺的销售数据情况。
接下来,我们来具体实现这个动态销售报告。
一、了解数据源结构
本文中的数据源如下图:
我们需要分析销售数据,所以我在销售明细中模拟了2018年和2019年的数据。将它们放置在销售明细文件夹中。销售数据结构如下图:
店铺信息直接模拟了十一个店铺如下图:
销售目标数据模拟数据如下图:
该模拟数据只是为了方便给大家讲解PowerBI操作。在实际业务中,我们的数据很有可能是来源于公司的业务系统或者来自不同部门的数据。获取数据后我们需要对数据进行数据处理,合并数据,转换数据,处理成我们需要制作报告的样式方便分析数据。
二、导入数据源数据
在销售数据明细文件夹中有两个EXCEL文件,所以我们需要先对这个文件夹的数据进行合并处理。然后处理合并单元格以及表头。在PowerBI中可以直接处理文件夹。接下来我们开始导入数据源步骤
1、新建一个空白的PowerBI项目文件
2、点击获取数据,选择更多,选择文件夹
3、点击连接,选择数据源存储位置,点击确定。然后点击转换数据进入PowerQuery编辑器(注意:该路径不是一尘不变的,有时候我们移动了文件夹,就需要重新引用。我们可以通过主界面编辑查询的数据源设置来变更路径即可)
4、查看导入
三、合并销售数据
在没有PowerBI之前我们在Excel中合并数据时主要时编写宏来处理数据,效率比较低。现在我们在PowerBI中只需要编写一个公式实现
1、点击删除不需要的列,只保留Name和Content.选择这两列然后再删除列中。点击删除其他列(注意:如果要删除的列多,就选择要保留的列,然后点击删除其他列。如果时删除的列少,保留的列多,选择要删除的列,点击删除列)
2、添加自定义列
打开自定义列表,输入列名数据表,输入自定义公式Excel.Workbook([Content])
3、展开数据表数据,只勾选data,使用原始列名作为前缀(注意:因为本示例中的数据源每个工作簿只有一个工作表所以只选择了data,如果大家使用的时多个工作表就需要选择name和data从而方便快速定位表)
4、将第一行作为标题
5、向下填充空白内容,选择转换选项卡,点击店铺,下拉填充菜单,点击向下
6、先复制销售单编号列,拆分销售订单编号,提取日期列。日期在销售报表中起到很大作用,可以在后续中分析趋势。可以在转换选项卡中找到拆分列
7、重命名列,将销售单编号1删除,销售单编号2按分隔符-最右侧分开。将第一列设置为销售日期
8、选中日期列,添加年,季度,月日期列
9、导入店铺信息和销售目标数据,可以看到PowerQuery中有三个查询信息
10、合并销售明细和销售目标数据,使用合并查询
11、筛选数据只保留2019年的数据
12、查询合并销售数据,左连接销售目标
展开销售目标列,并重命名销售目标
13、因为销售目标表只是中间计算过程,所以关闭启用加载销售目标表。右键取消勾选启用加载,表名称变为斜体字就是操作成功
14、关闭并应用数据处理,加载数据到PowerBI数据集中
等待应用查询
四、建立表关系、新建度量值
1、建立三个表的关联关系,店铺资料和合并销售数据,销售明细进行关联
2、新建分组列,通过面积进行分组
3、新建度量值
度量值公式:
1)、业绩完成率 = DIVIDE ( SUM ( '合并销售数据'[销售金额] ), SUM ( '合并销售数据'[销售目标] ) )
2)、本年销售笔数 = CALCULATE(DISTINCTCOUNT('销售明细'[销售单编号]),'销售明细'[年]=2019)
3)、本年销量= CALCULATE(SUM('销售明细'[销量]),'销售明细'[年]=2019)
4)、本年销售金额 = CALCULATE(sum('销售明细'[业绩金额]),'销售明细'[年]=2019)
5)、去年销售金额 = CALCULATE(sum('销售明细'[业绩金额]),'销售明细'[年]=2018)
6)、增长率 = DIVIDE([本年销售金额]-[去年销售金额] ,[去年销售金额])
7)、客单价 = DIVIDE('销售明细'[本年销售金额],'销售明细'[本年销售笔数])
8)、客单量 = DIVIDE('销售明细'[本年销量],'销售明细'[本年销售笔数])
五、制作可视化报告
1、添加图片,选择图像菜单,选择小黎子数据分析二维码
2、制作切片器,在可视化面板中选择切片器,勾选店铺资料中的店铺。同样再添加店长和城市切片器,分别调整列表为下拉。切片器的作用主要用于动态切换数据范围,使得相应图表一起发生更改。
3、制作卡片图,选择可视化面板中的卡片图,分别勾选本年销售额,本年销量,业绩完成率,增长率,客单价,客单数指标
4、制作条形图和柱状图,来查看城市销售状况并进行排名。选择折线和族状柱形图,选择店铺资料中的城市,列值选择本年销售金额,行值选择业绩完成率。开启数据标签功能
同样的操作方式,选择条形图来制作销售额增长排名
5、制作饼图,饼图是很好显示销售额占比的图像,也可以很好展现贡献度
6、制作散点图,散点图主要可以容纳丰富的数据,使得数据呈现规律变化。每个圆圈代表一个销售员,X轴代表客单量,Y轴代表客单价。圆圈的大小代表着销售额的高低。
7、制作数据表,PowerBI除了图表之外对于表格也是非常灵活的。方便查看数据,拖拽生成表格也比较容易。
到这里我们已经完成了动态销售报告的制作。我们可以根据公司的风格来调整主题。大家有没有觉得很方便了?
本文的示例地址:动态销售报告
本文中使用的模拟数据源,大家可以回复 销售 获取销售数据源文件
PowerBI系列之入门案例动态销售报告的更多相关文章
- DAX/PowerBI系列 - 参数表(Parameter Table)
DAX/PowerBI系列 - 参数表(Parameter Table) 难度: ★☆☆☆☆(1星) 适用范围: ★★★★☆(4星) 概况: 这个模式比较简单灵活,而且很实用.所用的DAX语句也比较简 ...
- SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...
- Google C++测试框架系列:入门
Google C++测试框架系列:入门 原始链接:V1_6_Primer 注 GTest或者Google Test: Google的C++测试框架. Test Fixtures: 这个词实在找不到对应 ...
- 浅谈JavaWEB入门必备知识之Servlet入门案例详解
工欲善其事.必先利其器,想要成为JavaWEB高手那么你不知道servlet是一个什么玩意的话,那就肯定没法玩下去,那么servlet究竟是个什么玩意?下面,仅此个人观点并通过一个小小的案例来为大家详 ...
- DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)
DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)参考文章见最后 难度: ◆◆◇◇◇(2星) 应用场景: 其实很多时候对数据汇总都会有层级关系的问题,不过说的不是 ...
- Pandas系列之入门篇
Pandas系列之入门篇 简介 pandas 是 python用来数据清洗.分析的包,可以使用类sql的语法方便的进行数据关联.查询,属于内存计算范畴, 效率远远高于硬盘计算的数据库存储.另外pand ...
- Mybatis学习笔记之一(环境搭建和入门案例介绍)
一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...
- spring-cloud-Zuul学习(一)【基础篇】--入门案例【重新定义spring cloud实践】
-- 2 ...
- 【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子. 标签: c#objectnewlineexceptionbytestring 2010-05-17 01:10 117109人阅读 ...
随机推荐
- Codeforces Round #585 (Div. 2)
https://www.cnblogs.com/31415926535x/p/11553164.html 感觉很硬核啊这场,,越往后越做不动,,,emmmm,,,(这场是奔着最后一题 2sat 来的, ...
- php装上sqlserver驱动后仍然显示Call to undefined function sqlsrv_connect()问题
今天老师要求本来的php+mysql改为php+sqlserver,在网上搜索了相应的教程,说是“需要下载安装Microsoft Drivers for PHP for SQL Server驱动”,下 ...
- 前端利器躬行记(6)——Fiddler
Fiddler是一款免费的.基于Windows系统的代理服务器软件(即Web调试抓包工具),由Eric Lawrence用C#语言在2003年10月发布了第一个版本.注意,由于Fiddler依赖Mic ...
- 使用 Nginx 部署前后端分离项目,解决跨域问题
前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...
- [VB.NET Tips]字符串连接
在很多应用场景下我们都需要对字符串进行拼接操作. 在每一次连接字符串时,都要在堆上分配新的内存空间,每一个分配都有一定的消耗. 较长的字符串在堆中分配,对其进行连接操作需要花费很长的时间,先连接小的字 ...
- [LeetCode] 由 “找零钱" 所想
Ref: [Optimization] Dynamic programming[寻找子问题] Ref: [Optimization] Advanced Dynamic programming[优于re ...
- php下api接口的并发http请求
php下api接口的并发http请求 ,提高app一个页面请求多个api接口,页面加载慢的问题: func_helper.php/** * 并发http请求 * * [ * 'url' //请求地址 ...
- Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码
在文章:Mybatis源码解析,一步一步从浅入深(一):创建准备工程,中我们为了解析mybatis源码创建了一个mybatis的简单工程(源码已上传github,链接在文章末尾),并实现了一个查询功能 ...
- 针对媒体不实报道误导大众--抹黑C#工资垫底
最近注意到一些媒体故意抹黑C# 工资垫底,参见 https://www.toutiao.com/i6741889572931633668/: 通过搜索引擎搜索<编程语言薪酬排行:Python薪资 ...
- mysql root用户登录后无法查看数据库全部表
可能是把root@localhost用户删掉了. 首先停掉mysql服务,在/etc/my.cnf中添加 skip-grant-tables,同时可以添加skip-networking选项来禁用网络功 ...