第3章构建报表






报表制作流程的第一步是从各个数据源导入数据,Power BI桌面可以从很多数据源导入数据,如Excel、CSV、XML,各类数据库(SQL Server、Oracle、My SQL)以及两大主流开源平台(Hadoop、Spark)等。下面仅介绍Power BI桌面如何对获取到的数据集进行塑形。所谓塑形就是确定数据集的列名以及数据类型,另外还进行一些基本数据的清洗、转换工作,以保证系统报表模块能正确解读数据集。塑形后的数据集就是Power BI桌面报表绘制区的输入源。一旦数据塑形好,就能切换到Power BI桌面报表区绘制各种报表。
3.1报表的构建
本节重点介绍用数据集进行报表的构建,使用Power BI桌面中的工具对数据集实现可视化。基于单个数据集,下面用几个示例来说明如何向报表添加可视化视图。图31所示是Power BI桌面系统。

左边框竖着排列有3个图标,分别是“报表”视图、“数据”视图以及“模型”视图。右面横排也排列有3个图标,分别代表“筛选器”窗格、“可视化”窗格以及“字段”窗格。它们是提供添加和配置可视化对象所需的工具。其中“字段”窗格中是加载输入的数据集的列表,系统可以访问每个数据集列。用户在“报表”视图中执行的大多数任务都是单击操作或拖放操作。例如,要将可视化对象添加到报表页面,只需单击“可视化”窗格顶部的“可视化”图标。Power BI桌面会将可视化对象添加到设计图面,用户可以将其拖动到其他位置或调整其窗口大小。然后,用户也可以通过在“字段”窗格中选择列来指定要添加到可视化对象的数据。
在设计图面上选择可视化对象后,Power BI桌面系统会更新“可视化”窗格以包含特定于该可视化对象的配置选项。例如,这里假设用户单击了“可视化”窗格中的“矩阵”图标,然后在画布区构建一个空的矩阵表格对象等待加载数据。图32显示了“可视化”窗格,其中在设计图面上选择了可视化对象“矩阵”中的单元格。在这种情况下,接着即可把“字段”窗格中的字段名“省份”和“区域”分别添加到“行”和“列”填充格。


图31Power BI桌面系统界面


除了“可视化”窗格的顶部包含用于向报表添加可视化对象的图标外,窗格的其余部分都是特定于所选可视化的配置选项,这部分窗格分为3个选项卡: “字段”“格式”和“分析”。图32中,选择了“字段”选项卡(方块所在位置),此选项卡上的选项主要用于将数据应用于可视化对象。第二个选项卡“格式”提供了用于配置所选图表的显示方式的选项。选项分为多个类别,这些类别特定于所选可视化对象的配置。图33显示了可视化对象的“格式”选项。



图32可视化对象下的“字段”选项



图33可视化对象的“格式”选项

“分析”选项卡允许用户向某些类型的可视化对象添加动态参考线。本书后面章节将更详细地介绍此选项卡。
图32中“字段”选项卡中的“行”和“列”字段已经添加了“省份”和“区域”两个参数,这时一个空的矩阵表单就搭建完成,如图34所示。


图34空矩阵表单的设置


如果想添加数据,用户可以单击“值”字段下面的“在此处添加数据字段”区,激活此字段,然后到“字段”窗格中勾选用户想添加的数据,例如这里添加“2017年销售额”。其结果如图35所示。


图35空矩阵表单结果


注意,表单自动添加了“总计”行和“总计”列,方便用户的使用。
3.2创建数据列
Power BI桌面报表的数据分为数据源和数据模型。数据源默认情况下的“逻辑”视图是查询,数据源和查询的结构相同。用户可以通过M查询语言增加自定义列,去修改查询的结构,M查询语言不会影响数据源,只会修改查询导出的数据。默认情况下,系统按照查询把数据加载到数据模型中,数据模型和查询的结构相同,用户可以通过DAX在数据模型上创建计算列(Calculated Column)和度量值(Measures)。
3.2.1自定义数据列
在Power BI桌面打开“编辑查询”页面,可以创建自定义数据列,使用的是M查询语言,M查询语言用于创建灵活性数据查询,该语言是区分大小写的。用户可以修改数据模型的架构,既可以添加自定义数据列,也可以向数据模型中添加数据列。
自定义数据列的建立可以采用如下操作步骤。
(1) 在确认了加载“项目1_数据集.xlsx”文件数据集的条件下,双击“编辑查询”图标,打开一个“Power Query编辑器”的新窗口页面。
(2) 在“查询”栏选择“时间表”表格。
(3) 单击“添加列”菜单,再选择“自定义列”图标并双击,就会弹出一个“自定义列”窗格。
例如,创建“月份值”列,通过使用M查询语言,把“日期”(格式是mm/dd/yyyy)转换为“月份值”(格式是整数),设置的值和格式如图36所示。单击“确定”按钮后,一个名为“月份值”的新列就产生了,如图37所示。


图36“自定义列”窗格




图37自定义列效果(新列“月份值”)


3.2.2计算列
在Power BI桌面,使用“报表”视图中的“新建列”功能创建计算列,如图38所示。


图38“新建列”操作


利用查询编辑器也可以添加“自定义列”,但在“报表”视图或“数据”视图中创建的计算列,是以用户已加载到模型中的数据为基础。例如,可以选择连接两个不同但相关表中的值执行添加或提取子字符串。像任何其他字段一样,刚刚创建的“新建列”将显示在“字段”列表中,但它们将带有特殊图标,显示的值是公式运行的结果。用户可以随意对列进行命名,像其他字段一样添加到报表可视化对象中,如图39所示。


图39呈现计算列

新创建的计算列是以已加载到模型中的数据为基础,根据公式计算的数据列。计算列是从数据模型中进行数据计算,不会修改数据模型。因此,计算列的值只会出现在“报告”视图和“数据”视图中。
计算列使用DAX定义字段的数据值,基于加载到数据模型的数据和公式来计算结果。计算列只计算一次,与报告没有交互行为,这意味着,计算列不会根据在报告页上选择的筛选器来动态计算表达式的值。计算列的值是基于当前数据行进行计算的,每行有一个计算列的值。
在计算列使用DAX计算结果时,该表达式是一个旨在处理关系数据(如Power BI 桌面中的数据)的公式语言。DAX包括一个含超过200个函数、运算符和构造的库,这个库可为创建度量值提供巨大的灵活性,几乎可以计算任何数据分析所需的结果。DAX中的函数旨在处理以交互方式切片(Slicer)或筛选的报表中的数据,例如Power BI桌面中的数据。
3.2.3度量值
度量值是在报表交互时对报表数据执行的聚合计算。度量值使用DAX定义字段的数据值,从数据模型中计算数据,不会修改数据模型。因此,度量值只会出现在“报告”视图和“数据”视图中。度量值通常用于聚合统计,是基于用户选择的筛选器,可以显示不同的聚合值。度量值是聚合值,但不是每行都有一个聚合值。举个例子,创建两个度量值,它们分别是“销售金额”和“2017年销售额”,其公式分别是: 
销售金额 = SUM([金额])
2017年销售额 = CALCULATE([销售金额],'时间表'[年份]="2017年")
度量值能够引用其他表的数据列,根据数据模型中的关系,能够完成很多交互的数据统计。
3.3报表可视化控件的设计
在显示报表数据时,Power BI桌面会提供多种方式,用户可以对数据的显示进行微调,使数据显示的效果更合理。
3.3.1层次结构
Power BI桌面支持在“报告”视图中创建字段的层次结构,在同一个查询中,拖动一个字段到另一个字段下,系统会自动创建一个层次结构,并以父层次字段的名称命名。


图310创建层次结构

例如,把字段“销售代表”拖到字段“销售经理”下,系统就会自动创建一个名为“销售经理层次结构”的新文件夹,里面包含“销售经理”“销售代表”这两个字段。显示效果如图310所示。

Power BI桌面内置了一个可视化控件等级切片器(Hierarchy Slicer),能够显示字段的层次结构,在字段中设置一个层次结构,如图311所示。
等级切片器是支持逐层展开的,控件显示的结构是一个树形结构,单击左侧的下三角按钮,就能够展开,以树形结构显示子级别的数据,如图312所示。



图311设置层次结构




图312展开层次结构


3.3.2数字的格式控制
可以在Power BI桌面设置字段的数据类型。选中一个字段,打开“建模”菜单,选择“销售记录”下的字段列“金额”,然后在“建模”菜单下设置字段的数据类型、格式、货币符号($)、显示百分比(%)、千位分隔符(,)或小数位数(0~n)等,这里设置显示的小数位数是1,说明数据只显示一位小数,如图313所示。


图313数字的格式控制


3.3.3字段值的筛选
可视化控件可以只显示排名靠前的N行数据,可以通过字段设置筛选条件来实现。单击“报表”视图,在“字段”列表中单击字段“产品名称”后面的“…”按钮,添加筛选条件,按照特定字段的值来筛选当前字段的值,如图314所示。


图314设置筛选器


3.4创建列表
在数据建模中需要创建两个表之间的关系时,Power BI系统要求和关系相关的两个数据列必须有一列是唯一值,且不允许存在重复值。在“销售记录”表中存在“下单日期”列,把该列以int表示的日期类型输出,可以按照如下过程来进行设置。
3.4.1添加新查询
打开查询编辑器,选中“下单日期”列,右击,在弹出的快捷菜单中选择“作为新查询添加”命令,从当前列中新建查询,新产生的列默认名是“列表”,如图315所示。


图315添加新查询


3.4.2列表转换为表单
新列是一个列表类型,需要把列表类型转换为表单类型,选中该列表,在“文件”菜单下单击“到表”命令,就可以把列表转换为表单。当从一个列表创建表单时,系统需要用户选择分隔符,如果该列表没有任何分隔符,则选择“无”选项,如图316所示。


图316列表转换为表单


3.4.3修改数据
新表的数据列名是Column1,右击该列,在弹出快捷菜单中选择“重命名”命令,把该列重命名为“整数时间”; 选择“更改类型”命令,把该列的数据类型修改为“整数”; 选择“删除重复项”命令,删除重复的数据值,如图317所示。

3.4.4查看导出数据表的实现步骤
在右侧的“查询设置”窗格中查看“应用的步骤”,选择某一个步骤,单击步骤名称前的“×”,即可把选择的步骤删除,如图318所示。



图317修改数据




图318查看实现的步骤


3.5系统报表服务器
系统工具库中的一个新工具是报表服务器。报表服务器是一个本地报表服务器,其中包含一个可显示的管理报表和KPI(Key Performance Indicators)的网上门户,同时也提供了创建Power BI报表、分页报表、移动报表和KPI工具。用户可以采用不同的方式访问这些报表,主要包括使用网上浏览器、移动设备或在收件箱中以电子邮件的形式查看报表。这是一个用于创建、部署和管理系统报表的本地解决方案,该产品包含在系统高级用户(Premium)的订阅中,为用户展现了一种在自己的数据中心内提供报表的工具。反过来,也可以通过浏览器、系统移动应用程序或电子邮件附件查看报表。
如果选择安装系统报表服务器,则必须使用报表服务器的配置管理器指定服务账户、网上服务URL、SQL Server数据库和网上门户URL等设置,如图319所示。用户需要先对配置进行设置,然后才能开始使用实际的报表。


图319报表服务器的配置管理器


报表服务器的配置管理器包含在报表服务器的安装中,但它与用于管理报表的工具分开。对于报表管理,必须使用报表服务器网上门户,该门户在配置必要的设置后才能启用。通过网上门户,可以访问所有报表和关键业绩指标,以及执行计划数据更新或订阅已发布报表等任务。
与系统服务一样,报表服务器与系统配合才能使用。用户可以创建报表,然后将其保存到报表服务器上。例如,可以将图320所示的报表保存到报表服务器上。


图320创建报表


该报表包括一个表和一个可视化功能区。要将报表保存到报表服务器上,必须使用“另存为”命令并提供网上门户的URL。
当用户连接到报表服务器网上门户时,即进入主页,其中列出了已添加到服务器的所有报表。例如,图321显示了在系统中添加的两个报表: AdventureWorksSales和Titanic。


图321在系统中添加的两个报表


要查看Titanic报表,可单击相应的报表图标,显示如图322所示的报表页面。


图322查看Titanic报表


注意,报表看起来与用户在系统中看到的类似,尽管颜色与原始颜色略有不同,但仍可以让用户了解报表服务器的工作原理以及将报表从系统复制到报表服务器的难易程度。
报表服务器仍然是一个较新产品,用户可能会遇到一些问题。例如,如果将产品安装在不属于域的独立服务器上,则可能无法在Edge浏览器中查看报表。这时用谷歌的Chrome浏览器可以在系统报表服务器中查看报表,并且还可以以管理员身份运行IE浏览器,并正确呈现报表。
用户可能遇到的另一个问题与用户正在使用的系统版本有关。用户必须使用一个兼容报表服务器优化的版本,然而这并不是最新版本。如果在较新版本的系统中创建报表,然后发现必须还原到旧版本以将报表保存到报表服务器,这样做可能会出现问题,主要的原因是较旧版本的系统可能无法正确处理报表文件。
3.6创建矩阵表格透视图
使用可视化对象的最佳方法是自己动手使用它们。通过这种方式,用户可以亲身体验这些工具,同时了解所有部件是如何组合在一起的。用户将添加和配置一个矩阵表格和两个切片器视图对象。图323显示了设置后的效果。左侧的可视化对象是单元格,右侧的两个视图对象是切片器。


图323创建矩阵表格示例


在构建矩阵表格之前,用户需要对加载到系统的“各省市GDP数据.xlsx”数据文件进行重塑,需要把二维表格转换为一维表格。双击“编辑查询”打开查询编辑器。按下Ctrl键,并选择“地区”和“年度”两个列,然后选择“转换”菜单下的“逆透视列”→“逆透视其他列”,这样就把二维表格转换为一维表格,如图324和图325所示。


图324逆透视其他列前




图325逆透视其他列后


另外,用户应该注意到,右边的“应用的步骤”栏中记录了上述操作的每一步,单击“×”按钮可以返回上一步,这样方便用户更改。单击“文件”菜单,选择“关闭并应用”命令,就完成了数据格式的重塑,可以进行矩阵表格的构建工作了。
矩阵表格可视化聚合了测量跨列和行的数据,同时支持广泛的向下获取功能,具体取决于数据以及矩阵表格的配置。
要添加图323中显示的矩阵表格,应按照以下步骤操作。
(1) 单击“可视化对象”窗格中的“矩阵”图标,完成将矩阵表格对象添加到已选中的画布中。
(2) 将“地区”列从“字段”窗格拖到“可视化”窗格上的“行”部分中。
(3) 将转换过来的列名为“属性”的字段,重命名为“产业类型”,并把它从“字段”窗格中拖到“可视化”窗格的“列”部分。
(4) 将“字段”窗格中的“值”列拖到“可视化对象”窗格上的“值”部分,如图326所示。这样矩阵表格中就充满了数据。


图326矩阵表格的参数设置

(5) 添加两个切片器,单击“可视化”窗格上的切片器图标,然后将“地区”拖入“字段”下的填充栏,同样,也可再制作一个“年度”切片器。
添加所需数据后,可以在“格式”选项卡上配置可视化设置,以确保其外观符合用户的需要,并且可以轻松浏览数据。要使单元格看起来更加美观,可用鼠标选中并激活矩阵表格,接着执行以下步骤: 
(1) 单击“格式”图标(一个滚筒图标),并从“样式”下拉列表中选择“差异最小”选项。
(2) 展开“网格”部分并将“垂直网格”选项设置为“开”,并为“垂直网格颜色”选项选择最浅的黄色。
(3) 展开“列标题”部分,将“文本大小”选项设置为12。
(4) 展开“行标题”部分,将“文本大小”选项设置为12。
(5) 展开“值”部分,将“文本大小”选项设置为10。
(6) 展开“小计”部分,将“文本大小”选项设置为10。
(7) 展开“总计”部分,将“文本大小”选项设置为10。
(8) 展开“标题”部分,将“标题”选项设置为“开”。在“标题”文本框中,输入“各省市GDP”,在“字体颜色”选项中设置合适的颜色。在“对齐”部分单击“中心”选项,然后将“文本大小”选项设置为17。
(9) 在“边框”部分将选项设置为“开”。
最后矩阵表格格式设置如图327所示。


图327矩阵表格格式设置示例


3.7创建表和卡视图
将列添加到可视化对象时,系统通常会汇总数据为全局视图提供信息。用户在3.6节中使用矩阵表格时已经看到了这一点,其中度量值“总计”列在“省份”和“产业”列中聚合,以便为每个离散组提供小计。
在某些情况下,用户可能不希望自动聚合数据。例如,用户可能希望添加一个仅列出单个GDP的表格视图对象。要实现这样的操作,需要单击设计图面底部的“+”按钮以插入第二页,接下来,单击“可视化”窗格上的“表”图标,然后将“年度”“地区”“产业类型”和“值”4列添加到“可视化”窗格的“值”部分。
这时系统将自动尝试汇总“年度”和“值”列,因为它们分别使用Count和Sum聚合函数来包含这两列中的每一列数值,在“可视化”窗格中单击“列”的下拉箭头,然后选择“不进行汇总”选项。设置内容如图328所示。
向表格可视化对象添加“日期”列时,系统会自动将日期分出层级,从而生成4列,包括年、季、月和日4部分。如果用户只想显示单个“日期”列,则必须重置“日期”列。在“可视化”窗格中,单击“列”的下拉箭头并选择“日期”选项,不勾选“日期层次结构”复选框。则系统将更新表,只显示“日期”列。其参数设置如图329所示。



图328“字段”设置




图329消除4级日期层次的设置


最后一步是在表中添加一个多行卡,单击“多行卡”图标,再将“产业类型”字段从“字段”窗格拖到“可视化”窗格的“多行卡”区域中。结果如图330所示。


图330表和多行卡的结合


3.8报表设计技巧
系统报表包含丰富的可视化对象,用户可以构建具有富有洞察力的仪表板。下面针对如何创建系统图表、表格和切片器,介绍几个报表设计的技巧。
3.8.1在报表画布中添加表格
提供信息的一种有效方法是在表格中提供一些数据,如图331显示的表格,其中包含所有的分析数据。当然,用户也可以根据具体分析来筛选所需的数据,例如使用切片器。


图331将表和切片器添加到报表画布


图331中除了表格之外,还在报表页面中添加“区域”和“月份”两个切片器,用于按用户习惯操作筛选数据。应用切片器时,系统会根据切片器中所选的数据值更新表格。通过这种方式关注不同的信息,可以轻松、快速地访问各种类别的数据,无须手动清除大量数据。
在图331中还可以将单元格数据进行高级查看。例如,图331可以显示所有省市的“任务额”数据,同时通过选择也可以获取某个省市、区域以及某月份的数据信息,如图332所示。


图332切片器的使用


在单元格中也可以设置向下获取类别,根据数据类型及其分层特性,来选择显示每个层次的顺序。例如,可以将此单元格配置到进一步深入与每个类别关联的TSQL语句中。本书说的TSQL即TransactSQL(Transact Structured Query Language),是SQL在微软SQL服务器上的增强版,它是用来让应用程序与SQL Server沟通的主要语言。TSQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程序设计结构(例如IF和WHILE)让程序设计更有弹性。
3.8.2在报表中添加可视化效果
系统能支持各种可视化对象,当然用户还可以导入更多的可视化对象。例如,图333显示的就是一个报表页面,其中包含3种类型的可视化对象,每种可视化对象都是从不同的视角来分析数据的。


图333向报表页面添加可视化


图333左侧和右上角的可视化对象是聚类条形图。可视化展现了如何使用聚类条形图从不同角度快速分析数据的方法。通过聚类条形图,可以通过各种方式对相关数据进行分组,以提供不同的视角。
(1) 左侧的聚类条形图是按用户对数据进行的分组,对于每个用户来说,为每种操作类型提供总计数据。
(2) 右上角的聚类条形图也是按用户对数据进行的分组。
(3) 右下方的可视化基本上与其上方的聚类条形图相同,但方式不同。
根据不同的要求和目的,可以针对相同的数据尝试使用不同的可视化效果,以方便用户以最佳的视角查看数据库。
3.8.3在报表中添加仪表
系统还允许用户向报表添加仪表、卡和关键性能指标(KPI)等元素。例如,添加图334中所示的仪表,以显示为响应用户运行TSQL语句的失败尝试而执行的ROLLBACK语句数。


图334将仪表添加到报表页面


在图334中,用户还添加了一个切片器,以便查看单个用户是否达到指定的阈值。用户可以指定任何目标值,图中的仪表的指定目标为50,并且结果显示的是与用户相关的回滚操作数。
用户可以根据系统服务中的值设置警报(在系统中无法执行此操作),因此目标值的设置很重要。但值得注意的是,要使用此功能,必须拥有系统Pro许可证,该许可证允许用户设置警报,定期通知潜在的问题。用户还可以设置定期生成电子邮件通知的警报,也可以向卡片和KPI视觉效果添加提醒。
3.8.4同步切片
用户在设计报表时,根据分析的需要可以把报表划分为不同的主题,其中每个主题独占报表的一个页面,而在这些画布上一般会摆放相同的筛选器。筛选器也叫作切片,它的主要功能是为分析数据提供不同的视角,以满足用户切换页面、查看报表时,希望通过不同的视角来观察报表,以此发现数据中隐藏的信息。切片同步是一个新的功能,但是目前使用该功能还是有一定的限制条件,它只针对系统桌面内置的切片器才有效,而对于从网上商城中加载的用户自定义切片器是无效的,也就是说不能启用同步切片的功能,例如等级切片器还不能实现切片的同步。切片同步是把整个页面的切片都添加进去,使得整个页面的切片和其他页面的切片都是同步的。不同的页面中的切片同步可以实现分组,每个分组中的切片都是同步的。
下面详细介绍在系统桌面中设置切换同步的步骤。
1. 打开同步切片的视图
在“报告”视图中,打开“视图”菜单,勾选“同步切片器”复选框,如图335所示。
2. 添加同步的切片器
在同步切片的视图中,选择同步切片的页面进行加入,如图336所示。



图335“视图”菜单




图336切片器选项


3.8.5永久筛选器
在系统服务中查看报表时,有时会从当前的报表切换到其他的报表上,等到回到原来的报表上,用户希望系统能够保存切片。这就意味着,系统服务必须保存终端用户离开当前报表时所选择的切片,并在重新打开当前报表时,看到的是之前所看到的样子,之前选中的切片现在依然是选中的。用户的这个需求可以通过永久筛选器(Persistent Filters)来实现,这个功能在系统中默认是启用的。即所有的系统报表会自动保存筛选器、切片器和其他的数据视图的更新。
用户可以通过选择“文件”→“文件设置”→“属性”→“当前文件”→“报表设置”命令,来查看永久筛选器的设置,如图337所示。


图337筛选器的设置


在当前的版本中,永久筛选器有一定的使用限制,当页面存在自定义的切片器时,永久筛选器的作用将会失效。用户在发布报表时,会把报表的切片、筛选器等设置为初始状态,我们把报表发布时的状态称作报表的默认状态。在启用永久筛选器之后,系统服务器会保存用户的切片数据。当看到图338所示的图标时,说明报表当前没有处于默认状态,用户可以通过“还原为默认值”按钮,把切片重置到发布时的默认状态。


图338设置选项


3.8.6切片的类型及隐藏
切片是系统内置的图表,该图表会根据数据的类型提供不同的类型。切片的类型主要包括下拉、列表、介于、之前、之后和相对日期,用户可以通过
按钮来设置切片的类型。例如,如果切片的数据类型是相对日期,则可以把切片的类型设置为之间,用户就可以选择指定连续日期区间内的数据信息。设置如图339所示。
切片器还提供了隐藏功能,即如果把切片器隐藏起来,用户是查看不到切片器的存在的。这样,系统可以在用户不知情的情况下,选择特定的筛选条件,或者把筛选条件传递到其他页面。有时,需要把固定的条件作为钻取(Drillthrough)的筛选器,如果该筛选条件不想被用户感知到,并且还需把切片器的条件传递到钻取页面,就需要把切片器隐藏起来。
在操作中,首先在页面尺寸中增加页面的高度,然后把切片器拉到页面的底部,最后减少页面的高度,这样系统就可以把切片器隐藏起来。设置过程如图340所示。



图339设置切片数据




图340切片器设置选项


3.8.7条件格式化



图341条件格式化

系统可以按照用户的意愿根据一个字段对另一个字段进行格式化显示,在当前的版本中,用户能够对字段的背景色和字段颜色进行动态设置。可以选中一个图表(Chart),单击其“格式”图标
,即可打开“条件格式”目录,用户即可根据需要进行格式化设置,如图341所示。
一般情况下条件格式化选项的默认值是Off,当切换到On时,系统桌面会自动打开设置窗体,用户在窗体中设置背景色、色级(Scales)和字体颜色,实现条件格式化的设置。
3.9矩阵视觉对象
在Power BI桌面和系统服务的报表中可以创建矩阵视觉对象,使用矩阵视觉对象元素,可以轻松地创建网格视觉效果。在网格内部可以使用不同的视觉效果,以此进行跨功能组件合成。矩阵视觉对象类似于表,但两者还有一定的区别。表仅支持两个维度,且数据是平面结构,也就是说,表可以显示但不可以聚合重复值。矩阵支持梯级布局,可以实现跨多个维度有目的地显示数据,同时矩阵可以自动聚合数据,并启用向下钻取,能将矩阵内的元素与相应报表页上的其他视觉对象一起交叉突出显示。例如可以选择行、列和各个单元格交叉突出显示。此外,矩阵还可以将选择的单个单元格或多个单元格复制并粘贴到其他应用程序中。更重要的是,用户还可以选择线条、部分矩阵格和交叉功能。总之,为了提高格式空间的利用率,矩阵视觉对象可以支持这一种具有创新型的设计。注意,框架和表格视觉效果反映了连接的报表主题的样式和色调。有些可能不是用户期望的网格视觉效果,那么用户可以在报告主题设置中对其进行修改。
借助矩阵视觉对象功能,可以在桌面系统或者云端服务系统报表中创建矩阵视觉对象(有时也称为“表”),并能使用其他视觉对象交叉突出显示矩阵内的元素。
3.9.1报表主题
在讲解如何使用矩阵视觉对象的步骤之前,应该先了解系统在表格和矩阵中是如何计算总计和小计的。“总计”和“小计”行是在基础数据的全部行上求取度量值,这不仅是在可见的或显示的行中简单地相加,还可能最终显示的“总计”行的值与预计的值存在一定的差异。查看以下矩阵视觉对象,如图342所示。


图342矩阵视觉对象示意图




图343视图组件

从图342显示的数据来看,最右边的矩阵视觉对象中的各行显示的是每个销售人员/日期组合的金额。但是,由于显示的每个销售人员可能会对应多个日期,也就导致这些数字可能会出现不止一次,因此,基础数据的准确总计并不等于可见值的简单相加。要求和值是一对多的关系是一种常见模式,所以必须特别注意。当查看总计和小计时,需注意这些值是基于基础数据的,并不仅仅是基于可见值计算的。
3.9.2向下钻取行
借助矩阵视觉对象,可以执行之前无法实现的各种向下钻取(扩展)活动,主要包括向下钻取(扩展)行/列、单独分区和单元格。
在“可视化”窗格中,如果向“字段”的“行”部分添加多个字段,可以为矩阵视觉对象的行启用向下钻取(扩展)功能。这类似于创建层次结构,以便向下钻取(扩展)层次结构,并分析每个级别的数据。在图343中,“行”部分包含“类别”和“子类别”,形成了可以向下展示的行分组(或层次结构)。
如果视觉对象在“行”部分中形成了分组,那么视觉对象会在其左上角显示“钻取”和“扩展”图标,如图344所示。
单击这些图标可以实现向下钻取层次结构,类似于其他视觉对象中的钻取和扩展行为。在图344中,可以从“类别”向下扩展到“子类别”。如选择向下扩展一个级别图标(),操作和显示结果如图345所示。



图344视觉对象示意




图345“子类别”显示的视觉对象示意


除了使用这些图标,还可以右击任意行标题,然后在弹出的快捷菜单中选择“向下钻取”命令,如图346所示。
选择“向下钻取”命令扩展的是该行级别的矩阵,其他所有行标题除外,即只会扩展右击的行标题。例如,右击图346中“销售代表”中人员名字,在弹出的快捷菜单中选择“向下钻取”命令,结果如图347所示。同时用户也会注意到其他顶层行不会再出现在矩阵中。这种钻取(扩展)方法是一项十分有用的功能,在介绍“交叉突出显示”部分时,会发现这项功能的巨大优势。



图346向下钻取行操作




图347向下钻取行后的视觉对象示意


用户也可以单击左上角的“向上钻取”图标,返回上一顶层视图。如果选择右击菜单中的“显示下一级别”命令,系统会按字母顺序列出所有下一级项(在此示例中,为“子类别”字段),不含更高级别的层次结构分类,如图348所示。
当用户右击并选择“扩展至下一级别”命令时,将看到如图349所示的视觉对象。用户可以使用“包括”和“排除”命令,其作用是在矩阵中保留(或删除)右击的行(和所有子类别)。



图348显示下一级别视觉对象示意




图349扩展至下一级别视觉对象示意


3.9.3向下钻取列
向下钻取(扩展)列与向下钻取(扩展)行类似。如图350中“列”字段中也有两个字段,形成了类似于前面使用的行层次结构。“列”字段中包含“区域”和“省份”。


图350视觉对象示意


在矩阵视觉对象中,当右击某列时,在弹出的快捷菜单中可以看到“向下钻取”命令。如图351中,右击列名“西区”,然后在弹出的快捷菜单中选择“向下钻取”命令,则系统会显示“西区”列层级结构的下一级项的相关内容,如图352所示。


图351向下钻取列操作




图352向下钻取列的视觉对象示意


与向下钻取行的操作相同,可以通过对列选择“显示下一级别”“扩展至下一级别”“包括”或“排除”命令等,完成对应操作,来满足不同用户的数据显示需求。
需要注意的是,矩阵视觉对象左上角的“向下钻取”图标和“向上钻取”图标仅对行有效,对列操作无效。如果想完成“向下钻取列”和“向上钻取列”,必须使用右击操作来完成。
3.9.4阶梯布局设计
矩阵视觉对象自动缩进层次结构中每个父级以下的子类别,就是所谓的阶梯布局。图353展示了矩阵视觉对象中的表。


图353矩阵视觉对象示意


图354展示了采用阶梯布局的矩阵视觉对象的实际效果。注意,类别“自行车”将其子类别“公路自行车”“旅游自行车”“山地自行车”略微缩进,让视觉对象变得更简洁紧凑。


图354采用阶梯布局的矩阵视觉对象示意


如果用户感觉以上没有达到所要的效果,也可以调整阶梯布局的设置。选择矩阵视觉对象后,在“可视化”窗格的“格式”部分(图355中的滚动油漆刷图标)中,展开“行标题”部分。下面有两个选项可以选择: “渐变布局”开关和“渐变布局缩进”,其中“渐变布局”开关用于启用或禁用渐变布局,“渐变布局缩进”用于指定缩进量,以像素为单位,如图355所示。如果禁用“渐变布局”开关,则子类别会显示在另一列中,而不是在父类别下进行缩进。同时用户也可以根据自己的喜好,来设置其他阶梯布局的格式。


图355阶梯布局格式的设置示意


3.9.5行、列小计的显示与隐藏
可以在矩阵视觉对象中,显示/隐藏行和列的小计,以满足不同用户的需求。在图356中,显示的是行小计已设置为“打开/显示”的效果。


图356显示行小计的视图对象示意


在“可视化”窗格的“格式”部分中,可以展开“小计”项,并将“行小计”滑块移动至“关”。执行此操作后,会隐藏行小计中的数据。如图357所示。相同的操作过程适用于列小计的显示与隐藏。



图357隐藏行小计的视图对象示意


3.9.6交叉突出显示
借助矩阵视觉对象,用户可以选择矩阵中的任意元素作为交叉突出显示的依据。在“矩阵”中选择一列即可突出显示它,报表页上的其他任何视觉对象也会予以反应。此类型的交叉突出显示一直是其他视觉对象和数据点选择的常见功能,矩阵视觉对象也可以提供此相同功能。
此外,还可以在采用按住Ctrl键的同时单击完成交叉突出显示操作。例如,在图358中,选择的是矩阵视觉对象中的一组子类别,本图例选择了“西区”。注意,视觉对象中未选择的项显示为灰色,同时用户会发现报表页上的其他视觉对象显示也会随着矩阵视觉对象的显示而变化。


图358交叉突出显示效果


3.9.7单元格的复制
矩阵或表中的数据信息可以提供给其他应用程序使用,如Dynamics CRM、Excel或其他Power BI报表。可以通过右击选定的单元格,在弹出的快捷菜单中选择相应的命令,将单个单元格或选定的单元格复制到剪贴板,并粘贴到其他应用程序。操作过程如图359所示。
若要复制单个单元格的值,可右击单元格,在弹出的快捷菜单中选择“复制”→“复制值”命令,即可将此剪贴板上未格式化的单元格的值粘贴到其他应用程序中,如图360所示。



图359复制单元格操作示意




图360单元格值的复制


若要复制多个单元格,可选择单元格范围或使用Ctrl键的同时单击一个或多个单元格。右击单元格,在弹出的快捷菜单中选择“复制”→“复制所选内容”命令,此时复制的内容包括列标题、行标题、单元格值,如图361所示。


图361选定单元格的复制效果


3.9.8条件格式设置
借助矩阵视觉对象,可以将条件格式(颜色和底纹)应用于矩阵中单元格的设置,还可以将条件格式应用于文本和值的格式设置。在选中矩阵视觉对象后执行以下任一操作。
首先选择一个单元格中的数据,在“字段窗格”中,找到“值”栏下的“销售金额”,然后右击“销售金额”,在弹出的快捷菜单中选择“条件格式”→“背景色”命令,如图362所示。


图362条件格式设置



在弹出的 “背景色销售金额”对话框中,设置“依据为字段”为“销售金额”,如图363所示。


图363背景设计过程


同样也可以进行“字体颜色”设置,这里选择黑色。设计好后,表格如图364所示。通过单击“高级控件”,在弹出的相应对话框中可以对颜色和值进行自定义设置。


图364条件设计后的矩阵表格


这时单元格的颜色会随着数字的大小而改变。
3.10报表的发布
系统在工具套件中扮演着关键角色,虽然可以在系统中做许多事情,但最终目标是构建视觉丰富的报表,为用户和使用者提供对底层数据的可操作界面,用户还必须向依赖其信息的人员提供这些报表。为此,用户需要将报表发布到系统服务或将其保存到系统报表服务器。也就是说系统创建的报表通常是可以发布到系统服务上的,发布后,可视化可以过滤、获取或固定到仪表板上。
下面介绍如何将报表发布到系统服务,并通过系统界面处理已发布的报表; 用户如何查看和更新报表,将报表组件保存到仪表板以及根据已发布的数据集创建新报表等任务; 如何在系统中更新报表之后再将其重新发布到系统服务上等操作。
3.10.1报表发布到系统服务
本节使用的示例借助前面在系统中构建的报表,为方便起见,将报表命名为“设置报表的钻取”,这是在示例中使用的名称。图365显示了“报表”视图中显示的报表单元格可视化页面,该报表由5页组成,每页都有视觉效果。


图365设置报告的钻取例图


要将“设置报告的钻取”报表发布到系统,需切换到“主页”菜单,单击“发布”选项,然后单击“发布到Power BI”按钮。如果用户尚未登录系统服务,系统将提示用户提供登录凭证,连接后,系统会提示用户选择目的地。然后选中“我的工作区”选项,单击“选择”按钮,如图366所示。


图366将报表发布到我的工作区示意


选择目标后,将弹出“发布到Power BI”对话框,该对话框中显示发布状态,提示信息前有复选标记,同时对话框还显示“知道吗”等有关使用系统服务的提示消息,如图367所示。


图367报表发布成功提示界面


3.10.2访问报表
用户可以从任何支持的浏览器中通过系统站点访问已发布的报表。例如,用户已经从Windows中的Chrome和Edge以及Mac OS中的Chrome和Safari访问该网站。登录时,用户将进入开发界面,该界面提供导入和可视化数据所需的工具。图368展示的是“设置报告的钻取”报表文件在系统服务中发布后的界面。


图368“设置报告的钻取”报表文件在系统服务中发布后的界面


“设置报告的钻取”报表和数据集列在左窗格的“我的工作区”部分中(用户必须在登录服务后展开此部分)。“我的工作区”部分是用户的个人工作区,用于访问和修改用户自己的仪表板、报表和数据集。
在“我的工作区”部分,可以访问以下4个类别中的任何一个。
1. 仪表板
仪表板用于通过切片或小部件显示数据的画布。仪表板只能与一个工作区相关联,但它可以显示来自多个数据集或报表的可视化。如果是系统Pro或Premium用户,还可以共享仪表板。
2. 报表
报表是基于已定义数据集中数据的可视化集合。每个报表都由一个或多个页面组成,报表只能与一个工作区关联,但可以与该工作区中的多个仪表板关联。用户可以在“浏览”视图或“编辑”视图中与报表进行交互,具体取决于用户授予的权限级别。
3. 工作簿
工作簿是通过将微软Excel文件上传到系统服务而创建的特殊类型的数据集。用户可以从系统服务中上传Excel文件,也可以直接从Excel发布文件。工作簿数据不需要特殊格式。这与导入Excel文件不同,后者将数据集添加到“数据集”类别。要导入Excel文件,必须将文件中的数据格式化为Excel表格。
4. 数据集
数据集是用户导入或连接到的相关数据的集合。数据集类似于数据库表,可用于多个报表、仪表板和工作区。用户可以从组织中其他人发布的文件、数据库、在线服务或系统应用中检索数据。
在图369中,选择“报表”部分中的“设置报告的钻取”报表,并在主窗口显示报表内容。在这种情况下,用户可以选择单元格可视化页面,也可以选择任何其他页面来查看这些可视化对象,就像用户在系统中看到的那样。


图369编辑系统服务中的“设置报告的钻取”报表


默认情况下,系统会在“浏览”视图中显示报表。如果用户具有适当的权限,也可以在“编辑”视图中使用该报表。在“编辑”视图,单击窗口顶部的“编辑报表”按钮,可允许用户直接在系统界面修改报表和可视化组件。在系统服务中更新可视化文件类似于在系统中更新可视化文件。注意,“编辑”视图包括“可视化”窗格和“字段”窗格。

测试编辑功能的一种简单方法是更新报表的“集群柱形图可视化”,以显示超过3000000元的销售额。首先选中要编辑的可视化界面,然后展开“可视化”窗格的“筛选器”部分中的“销售金额”列,在“显示值满足以下条件的项”下,选择“大于”,并将3000000添加到框中,然后单击“应用筛选器”按钮,如图370所示。


图370在系统服务中进行数值筛选


3.10.3更新和重新发布报表
一般情况下,用户可能更愿意修改完报表后,将它们再重新发布到系统服务中,而不是直接在系统服务中更新。例如,假设用户要通过向“矩阵”可视化对象添加获取筛选器来更新“设置报告的钻取”报表,使用“省份”和“产品名称”列作为筛选器,设置界面如图371所示。


图371更新报表界面


要添加获取筛选器,需选择“矩阵”表,然后将“省份”列从“字段”窗格拖到“可视化”窗格的“钻取”部分。接下来,将“产生名称”列拖到“省份”列下方的“钻取”部分,如图372所示。


图372“矩阵”表筛选器中“钻取”的设置


设置筛选器的“钻取”,可以使用户根据一个报表中的值访问另一个报表。由于“省份”和“产品名称”列已添加为“矩阵”表中的“钻取”筛选器,因此用户能够直接从包含“省份”或“产品名称”值的其他视觉对象进行访问。系统会根据所选的“省份”或“销售名称”自动过滤此“矩阵”表。
在系统中更新并保存报表后,用户可以像以前一样将其发布到系统服务,除非系统提示验证是否正在替换现有数据集,如果确认更新,单击“置换”按钮即可。
虽然“替换数据集”对话框的要求是只应用于“设置报告的钻取”报表数据集 ,但报表本身也会在系统服务中更新。用户可以通过返回系统服务并查看单元格报表来验证是否更新。
要测试钻取单元格可视化功能,需转到饼图、圆环图页面,右击饼图视图上需要钻取的部分(图373中选择的是“西区”),在弹出的快捷菜单中选择“向上钻取”命令,如图373所示,左边为钻取前,右边为钻取后的图示。


图373在系统中钻取饼图可视化


当单击饼图的可视化小块时,系统会将用户带到单元格可视化页面,其中数据通过对“分区”的数据进行筛选,结果如图374所示。需要说明的是,这里只有“南区”被列出。


图374“南区”销售额查看界面


3.10.4将报表固定到仪表板
将报表文件发布到系统服务时,只会将报表及其数据集添加到服务中。如果要在仪表板上包含报表组件,则必须将它们专门固定到仪表板上。
用户可以直接在报表中按页面固定报表项目。例如,要将GDP页面添加到仪表板,需转到该页面,然后单击右上角的“固定活动页”按钮。当出现“固定到仪表板”对话框时,用户可以选择将页面添加到现有仪表板或创建新仪表板,如图375所示。


图375报表页面固定到仪表板操作界面


如果选择“现有仪表板”单选按钮,可从下拉列表中选择已经存在的仪表板。如果选择“新建仪表板”单选按钮,则需为该仪表板提供名称。选择仪表板或输入新名称后,单击“固定活动页”按钮,当出现“固定到仪表板”对话框时,单击“转到仪表板”按钮,默认情况下,系统在视图中显示仪表板,报表页面作为图标添加到仪表板上。用户可以通过调整报表图标的大小或重新定位、编辑图标的详细信息,以及执行其他操作,也可以更改仪表板本身。
3.11仪表板
仪表板的作用是用来监控用户的业务,查看信息、挖掘信息并为用户提供决策的依据。仪表板上的可视化可以从一个或多个基础信息集返回,也可以从一个或多个查询结果集返回。仪表板结合了内部部署和云端信息,无论信息位于何处,都可以提供整合的读取。仪表板可以是单个页面,通常称为画布。它使用可视化来通知事件。由于它仅限于至少一个页面,因此仪表板仅包含该事件中最重要的组件。
如系统仪表板允许用户考虑零售超市、区域销售、个体商店交易、产品类别、客户群、销售渠道、折扣边际和利润等诸多信息,以便从信息中获取洞察力。有时为了获得有关上述要点的数据分析,用户需要针对不同对象、使用不同方式来获取这些信息,其目的是提高业务生产力。例如,超市的整体销售和表现、各地区的表现、用户各个部门的表现、按类别划分收入等。通常用户使用可视化进行报告时,他们将在仪表板上固定这些可视化组件。
3.11.1外部共享仪表板
尽管系统旨在为用户提供类似关联内的用户仪表板,但用户也可以向不同企业的个人提供仪表板,称之为“系统认可的关联”。关联方式可以描述为: 每个用户都需要在工作单位内拥有电子邮件地址。系统不承认私人的电子邮件,例如163.com、qq.com等。用户的工作单位需要一个单位电子邮箱,并且大多数用户必须在该区域内有一个电子邮件地址。大多数用户(包括云平台内的电子邮件)都被认为是一个类似的关联。如果用户使用微软Office 36以及Dynamice 365,可能会有多个窗格,用来填充具有类似关联的几个位置。下面讲解共享仪表板的方法,如图376所示。


图376发布仪表板操作


在Power BI桌面系统中,当制作好自己的仪表板并打算与外部人员共享时,单击“发布”按钮,假设用户已经是Power BI的用户,那么在弹出的新对话框中输入用户名和密码后,系统就开始上传仪表板数据到用户的云端服务账户,等上传完毕,用户可以看到弹出如图377所示的对话框。


图377发布成功对话框


这样用户就可以登录到自己的Power BI的云端账户,或者称为Power BI服务,查看自己上传的仪表板,如图378所示。


图378查看上传的仪表板


单击右上角的“共享”按钮,如果是Power BI Pro用户,就可以把该仪表板发布出去了,可以向不同单位的用户提供仪表板与外部人员共享。
对于内部用户端共享仪表板,可以通过电子邮件或向他们发送仪表板的URL来欢迎内部用户共享仪表板。在这种情况下,用户必须获得批准才可以进行操作。如果没有被批准,则用户必须在单击仪表板URL时请求授权。
对于外部客户端共享仪表板,用户可以通过电子邮件欢迎他们与外部用户来共享仪表板。在外部客户端收到电子邮件时,用户应该使用非个人的电子邮件账户登录系统,作为欢迎的一部分。如果用户从未使用过此系统,可以在登录时第一次进行免费记录。总之,Power BI为用户提供了安全可靠的信息分享系统,方便信息交流。
3.11.2在外部查看仪表板
下面介绍在iPhone、安卓系统(Android)手机、Windows 10上查看仪表板和报告。
1. 在iPhone上查看仪表板
首先在iPhone上打开“系统”应用程序并注册。
仪表板区域中的星星表示最喜欢的明星单位。仪表板名称下面的符号(在本例中为MBI)是分类显示。在浏览有关系统分类的其他内容时,系统会检查每个仪表板中的信息。在默认情况下,系统仪表板在用户的iPhone上看起来有点不同,所有的平铺显示似乎都是一样的宽度,它们是从头到尾依次组织起来的。
系统服务中将专门为纵向模式的手机读取仪表板进行设置。这样只需将手机侧向翻转,即可在手机上以横向模式查看仪表板。用户可以向上和向下滑动手机屏幕以查看仪表板中的所有图块,还可以实现以下操作。
(1) 单击一个图标以打开它的聚焦模式并使用它。
(2) 单击图标,将其设为收藏夹。
(3) 单击图标,让同事查看用户的信息中心。
(4) 单击图标,铆接并剔除仪表板的不同区域,以平移进行导航。
(5) 单击图标,打开平铺显示聚焦模式并随心所欲地浏览。
2.  在安卓系统手机上查看仪表板
首先通过手机打开系统应用程序并注册,之后单击仪表板将其打开,
显示的界面与在iPhone上看到的类似。仪表板区域的星星表示最喜欢的明星单位。仪表板名称下面的符号是分类显示。在浏览有关系统的类的其他内容时,系统会检查每个仪表板中的信息。系统仪表板在用户的手机上看起来完全不同。所有的平铺显示都是一样的宽度,它们是从头到尾依次组织起来的。如果用户是仪表板所有者,则在系统服务中,系统将专门为纵向模式下的手机生成仪表板进行阅读。在仪表板上,系统将在名称旁边显示(…)图标以询问、刷新或获取有关仪表板的数据: 向上和向下滑动手机屏幕以查看仪表板中的所有图块,要返回仪表板主页,需按下仪表板名称以打开分步路径,然后单击想要进的空间。
3.  在Windows 10上查看仪表板
在Windows 10设备上打开系统应用程序并注册,并单击仪表板将其打开。
仪表板区域中的黑色星星表示最喜欢的明星单位。每个仪表板名称下面的符号显示,浏览有关系统分类的其他内容,系统会分析每个仪表板中的信息。但是Windows 10手机上的系统仪表板看起来与手机的显示有点不同。所有的平铺显示都是一样的宽度,它们是从头到尾依次组织起来。用户可以将手机侧向翻转,以便在手机上以横向模式查看仪表板。如果用户是仪表板所有者,在系统服务中将生成专门读取针对纵向模式电话的仪表板。在仪表板中,用户可以进行如下操作。
(1) 单击图标可以打开并使用它。
(2) 单击完整的屏幕图标全屏图标,为用户的系统仪表板提供全屏显示,不带边界线或PowerPoint中的幻灯片放映等菜单。
(3) 单击图标,与同事共享用户的信息中心。
(4) 单击图标,将仪表板设置为收藏夹。
(5) 要返回仪表板主页,请按下仪表板名称以打开下级路径,然后选我的工作空间。
(6) 在Windows 10 手机上以横向模式查看仪表板,只需转动手机就可以在横向模式下联合阅读仪表板。仪表板布局从一系列图标更改为整个仪表板的读取,用户可以看到所有仪表板的图标都在系统服务中排序。
(7) 单击图标,铆接或剔除仪表板上的不同区域,以平移进行导航。
(8) 通过下级菜单打开平铺显示聚焦模式,并随心所欲地浏览。
小结
本章主要介绍了报表的构建,这也是Power BI的基本工具之一,需重点掌握。在设计表格时,应该重点掌握添加、删除单元格、添加量表、筛选器等组件; 能够添加并使用同步切片、隐藏切片以及筛选器等功能; 能掌握把报表发布到云端等操作和应用原理。
问答题
1. 什么是Power BI的计算列,为什么会用到它们?
2. 模型中为什么会需要一个与其他表格无任务关系的表格?
3. 什么是Power BI系统中的计算部分?使用它们的原因是什么?
实验
1. 构建一个报表,同时使用本章介绍的所有要件,如切片器、筛选器等。
2. 构建一个报表,并把它发布到云端,同时固定到仪表板上。