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人阅读 ...
随机推荐
- postman--请求以及变量设置的实例练习
我们可以在2个地方添加需要执行的js脚本,一个是Pre-request Script,还有一个tests,我们先看请求之前的 1 在请求被发送到服务器之前:就是在“Pre-request Script ...
- 《clean code》讲述代码中的道,而不是术
Clean code 看<clean code>一书,学习高手写出的代码,简单高效的代 1.目标 Bjarne Stroustrup:优雅且高效:直截了当:减少依赖:只做好一件事 Grad ...
- SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数
场景 在SqlServer Management中进行数据库还原时提示: 数据库不能在此版本的SQL Server中启动,因为它包含分区函数. 点击左下角的查看详细信息 实现 电脑上安装的是SQL S ...
- Python获取列表中的最后一个或者倒数第几个的方案
print(members[3]) 灵魂所在“ - (负号 )” 我们先来创建一个列表,和php中的数组一样. members = ['张三','李四','王五','芳芳','小明','小王'] 按照 ...
- CabloyJS带你轻松走进NodeJS全栈开发-免费课程 作者亲授
课程说明 B站直播 为回馈新老同学对开源框架CabloyJS的支持与厚爱,快速而轻松的开启NodeJS全栈开发之旅.2019年9月5日至9月11日在B站开启了一波免费直播培训课程 课程信息,请点击链接 ...
- [Link 2005]vs2015 LNK2005 "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl printR(class std::basic_ostream<char,struct std::char_traits<char> > &,class QueryResult const &)" (?
vs2015 LNK2005 "class std::basic_ostream<char,struct std::char_traits<char> > &am ...
- Mac搭建pyhton+selenium+pycharm实现web自动化测试
安装pip或者安装pip3: sudo easy_install pip 二选一安装 sudo easy_install python3-pip 安装selenium: sudo pip3 insta ...
- 微服务SpringCloud之注册中心Consul
Consul 介绍 Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其它分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发 ...
- AJAX基础内容
1.什么是ajax?为什么要使用ajax? ajax是Asynchronous JavaScript and XML ,也称为创建交互式网页应用开发技术. 2.为什么采用ajax 1)通过异步交互,提 ...
- 算法与数据结构基础 - 深度优先搜索(DFS)
DFS基础 深度优先搜索(Depth First Search)是一种搜索思路,相比广度优先搜索(BFS),DFS对每一个分枝路径深入到不能再深入为止,其应用于树/图的遍历.嵌套关系处理.回溯等,可以 ...