PowerBI开发 第一篇:设计PowerBI报表

PowerBI是微软新一代的交互式报表工具,把相关的静态数据转换为酷炫的可视化的,能够根据filter条件,对数据执行动态筛选,从不同的角度和粒度上分析数据。PowerBI主要由两部分组成:PowerBI
Desktop和 PowerBI
Service,前者供报表开发者使用,用于创建数据模型和报表UI,后者是管理报表和用户权限,以及查看报表(Dashboard)的网页平台(Web
Portal)。在开始PowerBI制作报表之前,请先下载 PowerBI
Desktop桌面开发工具,并注册Power
BI
service账户,在注册Service账号之后,开发者可以一键发布(Publish)到云端,用户只需要在IE或Edge浏览器中打开相应的URL链接,在权限允许的范围内查看报表数据。

 

我的PowerBI开发系列的文章目录:PowerBI开发

一,认识PowerBI Desktop主界面

打开PowerBI
Desktop开发工具,主界面非常简洁,分布着开发报表常用的多个面板,每个面板都扮演着重要的角色:

  • 顶部是主菜单,打开Home菜单,通过“Get
    Data”创建数据连接,创建数据源连接是通过Power Query
    M语言实现的;通过“Edit Queries”对数据源进行编辑;
  • 左边框分别是Report,Data和Relationships,在开发报表时,用于切换视图,在Relationships界面中,管理数据关系,数据建模是报表数据交互式呈现的关键;
  • 右边是可视化(Visualizations)和字段(Fields),用于设计报表的UI,系统内置多种可视化组件,能够创建复杂、美观的报表;
  • 底部边框是Report的Page,通过“+”号新建Page,PowerBI允许在一个Report中创建多个Page,多个Page共享Data和Relationships;

图片 1

PowerBI Desktop另一个重要的编辑界面是查询编辑器(Query
Editor),通过点击“Edit Queries”切换到查询编辑器(Query
Editor),用于对查询(Query)进行编辑,在左侧的Queries
列表中,共有三种类型的查询,分别是Table,List和Parameter,中间面板是Query的数据,右侧面板是查询设置(Query
Settings),如下图所示,查询编辑器(Query
Editor)通过菜单提供丰富的编辑功能,例如,通过“Transform”菜单对查询和其字段执行转换操作,通过“Add
Column”菜单,适用Power Query M语言为查询添加字段:

图片 2

二,加载数据

在Home主菜单中,点击“Get
Data”,能够从多种数据源(文档,数据库,Azure等)中加载数据,在PowerBI
Desktop中,每一个数据源都被抽象成一个“Query”,在加载数据时,PowerBI支持对Query进行编辑,在Query
Editor中编辑Query,对数据进行清理,转换,以满足复杂的业务需求。

1,加载Excel示例数据

示例数据:download this sample Excel
workbook,将Excel下载到本地主机中,选择Excel数据源类型,点击“Connect”,指定Excel文件的路径:

图片 3

选择需要加载的Sheet,点击Edit,将打开Query
Editor对数据进行编辑,在该例中,直接点击“Load”,把Excel中的数据加载到报表中,点击左边的“Data”面板,查看加载的数据,对于数值型数据,前面有累加符号(∑):

图片 4

2,编辑查询

每一个数据源都被抽象成一个Query,通过定义相应的数据转换操作,就能在数据集加载到PowerBI时,应用(apply)自定义的数据修改操作,而不需要修改数据源。在Data视图中,点击Home菜单的“Edit
Queries”,能够对“Query”进行编辑和转换,例如,清洗脏数据,删除冗余的Column,添加新的Column,转换列的数据类型。在右边的“Query
Settings”中,“Applied
Steps”显式列出查询的编辑步骤,在编辑完成之后,点击“Close &
Apply”,完成查询的修改。

图片 5

在菜单Transform中,PowerBI提供丰富的数据转换功能,满足您复杂的分析需求。

图片 6

3,增加一个数据列YearMonth

数据列YearMonth时Year字段和MonthName字段的结合(Combine),点击菜单Add
Column,按住CTRL,同时选中Year和MonthName字段,并从“Add
Column”菜单中选择“Column From Examples”:

图片 7

双击右侧新建的Column,输入同一数据行的Year和MonthName字段值的拼接(Combine),作为一个示例(Example),PowerBI会根据用户输入的结果,自动检测派生列的值,并生成派生列的计算公式,该公式可以在数据表格的上方查看到:

Transform:Text.Combine({Text.From([Year]),” “,[Month Name]})

图片 8

点击OK,并把列名Combined修改YearMonth,并切换到Home菜单,点击“Close &
Apply”,应用Query的编辑,并关闭Query Editor窗体。

图片 9

三,添加可视化组件

在制作报表之前,必须熟悉报表数据及其数据之间的关系,本例只有一个数据表,所有的数据及其关系都存储在一个数据表中,在Relationships视图中,只有孤零零的一个表。

点击“Report”,进入到报表编辑界面,使用Visualizations中可视化组件,设计报表UI。

图片 10

1,使用分片器(Slicer)

Slicer是一个过滤器(Filter),每一个CheckBox都是一个选项(Item);单击选中,再次单击,取消选择;按住CTRL不放,能够多选;不选择任何Item,表示不对数据应用该Filter,不选和全选是不相同的。从PowerBI的内部运行原理上来解释,如果没有选择Slicer的任何一个选项,那么PowerBI不会对数据执行筛选操作;如果全选,那么PowerBI对数据执行筛选操作。由于在数据模型中,数据表之间可能存在多层关系,不选和全选的结果可能是不相同的,在后面的数据建模章节中,我会解释这一点。

例如,拖曳一个Slicer,把Country作为Filter,UI效果如图:

图片 11

每一个可视化组件(Visualization)都需要设置Fields属性,将数据字段Country从Fields列表中拖曳(Drag)到Field字段中,PowerBI会自动对数据进行去重(Distinct),只显示唯一值,并按照显示值进行排序。

Field右边是一个刷子的图形,用于改变可视化组件的显示属性,读者可以尝试着修改,以定制数据的UI显示效果。

图片 12

每一个可视化组件,都会三个级别的过滤器(Filers),分为组件级别,Page级别,Report级别,用于对数据进行过滤,该过滤是静态设置的,不会动态地根据用户选择的Filter对数据进行过滤。

图片 13

2,对Slicer的显示进行排序

PowerBI支持数据值的排序,在排序时,可视化组件根据排序值(Sort)执行排序操作,在相应的顺序位置上呈现数据的显示值(Display),因此,排序操作会使用到排序列(Sort
By Column)和显示列(Display By
Column),默认情况下,显示列就是排序列;用户可以在“Modeling”菜单中修改默认的排序行为,组件在显示数据列Column1的数据时,按照另外一个数据列Column2的值的顺序。

在右边框的Fields中选择排序的显示列,在“Modeling”菜单中,选择“Sort By
Column”,默认的排序列是显示列,可以选择其他数据列作为排序列。

图片 14

3,使用Line Chart可视化组件

从Visualizations列表中,选择Line
chart组件,轴线(Axis)属性选择Product字段,该可视化组件会按照Product呈现数据,每一个Product都是数据分析的一个维度,一个视角;Values属性选择Gross
Sales和Sales
字段,该可视化组件会显示两条曲线,曲线的值分别是按照Product划分的Gross
Sales和Sales,这就是说,对于每一个Product,都会分别计算Gross
Sales和Sales的值。

图片 15

4,使用Stacked column Chart可视化组件

分组显式报表数据,如图,设置Axis属性为YearMonth,Value数据设置为Profit,Legend属性设置为Product,Legend属性的作用是再次分组,本例设置Legend属性为Product,这意味着,当Axis属性为某一个月(Year
Month)时,PowerBI按照Product对Value进行分组,分别设置各个Product所占的利润(Value属性是Profit);

图片 16

图片 17

该可视化组件的数据呈现并不完美,因为,底部的YearMonth不是按照自然月进行排序的,而是按照字符的顺序进行排序,为了修改这个“瑕疵”,必须改变组件默认的排序行为,使其按照排序列的值进行排序,由于数据表中有Date字段,可以按照Date字段排序,而显示的字段是YearMonth。实现的步骤非常简单,分两步:

Step1:在右边Fields列表中选中YearMonth字段,

Step2:打开菜单“Modeling”,点击“Sort by
Column”,默认的排序字段是YearMonth,把排序列选中为Date字段。

图片 18

在修改YearMonth的排序列之后,组件的显示正常,YearMonth轴按照自然月从左向右,依次递增。

四,设计第一个PowerBI报表

当点击Slicer可视化组件(Year,Country)中的选项时,右边和下面的可视化组件中的数据会自动变化,这种交互式的“联动”变化是通过关系(Relationship)来实现的,对于本例,由于报表只有一个数据源,关系隐藏在单表中,对于多个表之间的交互式关系,可以在“Relationships”面板中,通过数据建模来实现,我会在《PowerBI
第二篇:数据建模》中详细讲述PowerBI的数据建模和关系,以及动态关联的实现。

图片 19

 

参考文档:

Getting started with Power BI
Desktop

Add a column from an example in Power BI
Desktop

Power BI
文档

Power BI
的引导学习

微软又一逆天可视化神器——Power
BI

发表评论

电子邮件地址不会被公开。 必填项已用*标注