本文将讲解如何从零开始使用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系列之入门案例动态销售报告的更多相关文章

  1. DAX/PowerBI系列 - 参数表(Parameter Table)

    DAX/PowerBI系列 - 参数表(Parameter Table) 难度: ★☆☆☆☆(1星) 适用范围: ★★★★☆(4星) 概况: 这个模式比较简单灵活,而且很实用.所用的DAX语句也比较简 ...

  2. SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)

    SpringMVC简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 Spring结构图 Spr ...

  3. Google C++测试框架系列:入门

    Google C++测试框架系列:入门 原始链接:V1_6_Primer 注 GTest或者Google Test: Google的C++测试框架. Test Fixtures: 这个词实在找不到对应 ...

  4. 浅谈JavaWEB入门必备知识之Servlet入门案例详解

    工欲善其事.必先利其器,想要成为JavaWEB高手那么你不知道servlet是一个什么玩意的话,那就肯定没法玩下去,那么servlet究竟是个什么玩意?下面,仅此个人观点并通过一个小小的案例来为大家详 ...

  5. DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)

    DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)参考文章见最后 难度: ◆◆◇◇◇(2星) 应用场景: 其实很多时候对数据汇总都会有层级关系的问题,不过说的不是 ...

  6. Pandas系列之入门篇

    Pandas系列之入门篇 简介 pandas 是 python用来数据清洗.分析的包,可以使用类sql的语法方便的进行数据关联.查询,属于内存计算范畴, 效率远远高于硬盘计算的数据库存储.另外pand ...

  7. Mybatis学习笔记之一(环境搭建和入门案例介绍)

    一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...

  8. spring-cloud-Zuul学习(一)【基础篇】--入门案例【重新定义spring cloud实践】

                                                                                                    -- 2 ...

  9. 【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。

    C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子. 标签: c#objectnewlineexceptionbytestring 2010-05-17 01:10 117109人阅读 ...

随机推荐

  1. 小白专场-多项式乘法与加法运算-python语言实现

    目录 题意理解 解题思路 多项式加法 多项式乘法 完整代码 题意理解 题目: 设计函数分别求两个一元多项式的乘积与和. 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一 ...

  2. HashMap面试必问的数据结构相关知识

    如果在看这篇文章时,对HashMap的结构还不是很了解,建议你参考前段时间写的<刨死你系列——HashMap剖析(基于jdk1.8)>,可能会对下面的提及到知识点有些帮助. 1:HashM ...

  3. Git学习-安装与创建本地仓库

    前言 以前公司进行项目的版本管理都是用svn,最近公司推荐用git,把svn给关闭了.没办法,拿来主义.网上一番猛操作,勉强也能用了,给自己做个笔记. git安装 因为我用的是windos系统,在Wi ...

  4. 基于Arduino和Blynk平台的远程控制智能小车

    /------转载请附上本文链接 https://i.cnblogs.com/EditArticles.aspx?opt=1 -------啦啦啦我是快乐的分割线- ------------/ 小车图 ...

  5. 外部服务器使用jedis操作redis数据库

    使用maven获取jedis的包,我本来想去找jedis的jar包的,但是没找到. (maven)     <dependency> <groupId>redis.client ...

  6. jenkins导致磁盘占满问题

    背景 今天登陆jenkins提示磁盘空间不足,且构建发生错误 排查问题 cd到jenkins 安装目录 执行df -h 发现root目录沾满 执行 du -ah --max-depth=1 发现是.j ...

  7. linux服务器创建虚拟路径解决文件上传路径隔离问题

    需求环境 图片上传最简单的就是上传web项目下,这样图片与项目不可分离会产生很多不必要的影响.例如:重新部署项目需要把所有上传的图片再copy一份等. 图片与项目分离有好几种方式: 方式一.在linu ...

  8. Flask基础(09)-->请求勾子函数

    什么是请求勾子? 为了让每个视图函数避免编写重复的功能代码,flask提供了通用设施的功能,就是所谓的勾子 那么请求勾子就是,在浏览器请求服务器资源的前后挂载相关的处理函数 请求勾子有什么作用? 作用 ...

  9. OKR群:为什么说每个程序员都应该有自己的个人OKR

    个人OKR OKR,即Object and Key Result,是IT大厂最近争相推广的目标管理工具,例如腾讯.百度和头条(字节跳动). 其实,OKR并不是仅仅只适用于公司和部门内部,我们个人也可以 ...

  10. PHP5.5 mysqli如何连接MySQL数据库和读取数据

    在学习 1. 开启PHP的API支持 (1)首先修改您的php.ini的配置文件.查找下面的语句:;extension=php_mysqli.dll将其修改为:extension=php_mysqli ...