天天看点

PowerBI数据可视化-第9-12章

第9章 查询编辑器 Power BI Desktop附带查询编辑器的功能,可连接到一个或多个数据源,能够调整和转换数据以满足用户的需要,调整后的数据可加载到Power BI Desktop。 9.1 查询编辑器介绍 要访问查询编辑器,需要在Power BI Desktop的“开始”选项卡中单击“编辑查询”下拉按钮,在弹出的下拉列表中选择“编辑查询”选项,如图9-1所示。 9.1.1 查询功能区 9.1.2 “查询”窗格 9.1.3 数据视图 9.1.4 “查询设置”窗格   9.2 常见查询任务 9.2.1 连接到数据 9.2.2 调整数据 在查询编辑器中调整数据,查询编辑器加载并呈现数据时会提供分步说明(查询编辑器将执行此操作),原始数据源将不受影响。 查询编辑器会记录指定的步骤,每当此查询连接到数据源时,都会执行这些步骤,因此数据将始终按指定的方式进行调整,这些步骤是在“查询设置”窗格中的“应用的步骤”下按顺序进行“捕获”的,如图9-16所示。 对于初学者来说,在查询编辑器加载表格时,我们需要的是数字类型。要将文本转换为数字,只需右击列标题,然后在弹出的快捷菜单中选择“更改类型”>“整数”来对其加以更改,如图9-17所示。 如果要选择多列,可先选择一列,然后按住Shift键选择其他相邻列,右击列标题可以更改所有选中的列,也可以使用Ctrl键选择不相邻的列。   9.2.3 追加数据 9.2.4 合并数据 9.2.5 对行进行分组     第10章 运行R脚本   可以在Power BI Desktop查询编辑器中使用R。R是统计学家、数据科学家和数据分析师使用最广泛的一种编程语言。查询编辑器中集成的R可用来进行数据清理,并在数据集中执行高级数据调整和分析,包括丢失数据补全、预测和聚类分析。R是功能强大的语言,可在查询编辑器中准备数据模型并创建报表。   10.1 在查询编辑器中使用R 要在Power BI Desktop中运行R脚本,需要在本地计算机上安装R,并且当前版本的R脚本在安装路径中支持Unicode字符和空格(空字符)。 在Power BI Desktop中,R的安装和设置位于“选项”对话框的“R脚本”部分。要指定R的安装和设置,选择“文件”>“选项和设置”命令,然后在打开的“选项”对话框中选择“R脚本”。如果有多个R版本可以安装,则会显示一个下拉菜单,让用户进行选择,如图10-1所示。 在Power BI Desktop中只需几个步骤即可运行R脚本并创建数据模型,从而创建报表并在Power BI服务上共享它们。Power BI Desktop中的R脚本现在支持包含小数点(.)和逗号(,)的数字格式。为了演示如何在查询编辑器中使用R,我们使用“StockMarketIndex.csv”示例数据,步骤如下。 (1)在Power BI Desktop的“开始”功能区中单击“获取数据”下拉按钮,在打开的下拉列表中选择“文本/CSV”选项,如图10-2所示。   10.2 编辑器查询的限制 在查询编辑器中创建的R脚本的查询有一些限制,所有R数据源都必须设置为“公用”,并且查询编辑器创建的查询中所有步骤也必须设置为“公用”。要获取数据源设置,在Power BI Desktop中选择“文件”>“选项和设置”>“数据源设置”,如图10-11所示。 打开“数据源设置”对话框,选择“数据源”,然后单击“编辑权限”按钮,在打开的“编辑权限”对话框中确保“隐私级别”为“公用”,如图10-12所示。 要启用R视觉对象或数据集的计划更新,需要启用“计划更新”选项,并且需要拥有访问相应计算机个人网关的权限。   10.3 R与Power BI协同使用 借助Power BI Desktop,可以使用外部的R IDE(集成开发环境)创建并优化R脚本,然后将这些脚本用于Power BI中。 在启用外部R IDE之前,需使用Power BI Desktop中的R脚本编辑器创建并运行R脚本,借助此版本,可以从Power BI Desktop启动外部R IDE,然后自动导入数据并显示在R IDE中。可以修改此外部R IDE中的脚本,将其重新粘贴至Power BI Desktop中来创建Power BI视觉对象和报表。 使用此功能需要在本地计算机上安装R IDE,Power BI Desktop没有安装R引擎,因此必须在本地计算机上独立安装R。 大部分R IDE都是免费的,例如Revolution Open下载页面和CRAN存储库。Power BI Desktop还支持R Studio和具有R Tools for Visual Studio编辑器的Visual Studio2015。 可以将R文件与Power BI Desktop要启动的外部IDE相关联。单击“文件”>“选项和设置”命令,可以打开“选项”对话框。如果安装了多个R IDE,在“检测到的R IDE”下拉列表框中进行选择就可以指定要启动哪个R IDE,选择“其他”选项可以指定Power BI Desktop应启动的.exe文件,如图10-13所示。 在默认情况下,Power BI Desktop将启动R Studio作为外部R IDE(已安装);如果未安装R Studio,而是安装了具有R Tools for Visual Studio的Visual Studio2015,则将启动Visual Studio2015;如果均未安装,则将启动与R文件关联的应用程序。 如果R文件不存在任何关联,则可以在“选项”对话框的“浏览到你的首选R IDE”文本框中指定自定义IDE的路径。通过单击Power BI Desktop中“启动R IDE”箭头图标旁边的齿轮图标,还可以启动不同的R IDE。     第11章 数据高级操作 11.1 创建和管理关系 在Power BI Desktop中导入多个数据表时,可能要使用这些表中的数据,为了准确计算结果并在报表中显示信息,管理这些表之间的关系是很有必要的。在大多数情况下,无须执行任何操作,软件会自动检测并执行,但是在某些情况下,可能需要自行创建关系,或者对关系进行一些更改。 11.1.1 自动创建关系 Power BI Desktop在加载多个数据源时,要确定是否存在潜在关系,若存在关系,则尝试查找并创建关系,自动设置基数、交叉筛选方向和活动属性;如果无法确定存在的匹配项,则不会自动创建关系,但是仍可以使用“管理关系”对话框来创建或编辑关系。下面通过具体案例进行介绍。 (1)导入数据“客服中心2017年呼入量数据.xlsx”和“客服中心话务员个人信息表.xlsx”,如图11-1所示。 (2)使用自动检测功能创建关系,在“开始”功能区中单击“管理关系”按钮,如图11-2所示。     11.1.2 手动创建关系 用户还可以手动创建关系,在“管理关系”对话框中,单击“新建”按钮,如图11-6所示。 打开“创建关系”对话框,在第一个下拉列表框中选择“客服中心2017年呼入量数据.xlsx”,如图11-7所示。在第二个下拉列表框中选择“客服中心话务员个人信息表.xlsx”。   在默认情况下,Power BI Desktop会自动配置新关系的基数和交叉筛选器的方向等。 (1)基数 多对一(*:1):这是最常见的默认类型,意味着一个表中的列可具有一个值的多个实例,而另一个相关表(常称为查找表)仅具有一个值的一个实例。 一对一(1:1):意味着一个表中的列仅具有特定值的一个实例,而另一个相关表也是如此。 (2)交叉筛选器的方向 双向:这是最常见的默认方向。意味着在进行筛选时,两个表被视为同一个表,适用于其周围具有多个查找表的单个表。 单一:这意味着连接表中的筛选选项适用于被连接的表格。如果在Excel2013或更早的数据模型中导入了Power Pivot,则所有关系都将具有单个方向。 (3)使此关系可用 勾选此复选框后,意味着此关系用做活动的默认关系。如果两个表之间存在多个关系,则Power BI Desktop可通过活动关系自动创建包含这两个表的可视化对象。   11.1.3 手动编辑关系 11.1.4 手动删除关系   11.2 数据按列排序 在Power BI Desktop中,通过更改视觉对象的排序方式,可以突出显示想要表达的信息,并确保视觉对象反映想要传达的任何趋势。   11.2.1 使用排序依据 无论使用的是数值数据还是文本数据,都可按所需的方式对可视化效果进行排序。在任何视觉对象上,单击“省略号”图标,在弹出的菜单中选择“排序依据”和排序所依据的字段,如图11-14所示。   11.2.2 返回默认排序 可以按任意列进行排序,但是有时也需要将视觉对象返回到其默认的排序列。对于已选中排序列的视觉对象,只需打开“排序依据”菜单,再次选择此列,可视化内容即可返回到其默认的排序列。     第12章 数据分析表达式 本章将介绍Power BI计算中所用的DAX公式,解决一些计算和数据分析问题。DAX公式就是度量值和计算列中所用的公式。我们已经熟悉Power BI Desktop、导入数据、将字段添加到报表,下面将介绍函数、计算列和计算表。   12.1 函数 12.1.1 函数定义 函数是使用特定值、调用参数并按特定顺序或结构来执行计算的预定义公式。参数可以是其他函数、另一个公式、表达式、列引用、数字、文本、逻辑值(如TRUE或FALSE)或常量。 DAX包括以下函数类别: 日期和时间函数、时间智能函数、信息函数、逻辑函数、数学函数、统计函数、文本函数、父/子函数和其他函数。读者如果熟悉Excel公式中的函数,那么对DAX中的很多函数都会觉得熟悉。但是,DAX函数在以下方面是独一无二的。 (1)DAX函数始终引用完整列或表。如果仅想使用某个表或列中的特定值,则可以向公式添加筛选器。 (2)如果需要逐行自定义计算,那么DAX提供可将当前行值或相关值用做一种参数的函数,以便执行因上下文而变化的计算。 (3)DAX包括许多会返回表而非值的函数。表不会显示出来,但可以将其用于提供其他函数的输入。例如可以检索表,然后计算其中的非重复值等。 (4)DAX包括各种时间智能函数,这些函数可以定义或选择日期范围,并基于此范围执行动态计算。例如,可以比较并行时间段内的总和。 (5)不同于Excel中的VLOOKUP,DAX函数不会采用单元格或单元格区域作为引用。DAX函数采用某一列或表作为引用。 创建自己的公式之前,需要了解DAX公式语法。语法包括组成公式的各种元素,简单来说就是公式的编写方式。例如,TotalSales=SUM(Sales[SalesAmount])。 此公式包含以下语法元素。 (1)度量值名称TotalSales。 (2)等号运算符(=)表示公式的开头,完成计算后将会返回结果。 (3)DAX函数SUM会将Sales[SalesAmount]列中的所有数字相加。 (4)括号可以包含一个或多个参数的表达式,函数至少需要一个参数。 (5)引用的表是Sales表。 (6)Sales表中的引用列为SalesAmount。 添加到报表后,此度量值将所包括的销售额相加,进行计算并返回值。SalesAmount列前面加上了列所属的Sales表,这就是所谓的完全限定列名称,因为它包括列名称且前面加上了表名。同一个表中引用的列不需要在公式中包含该表名,这可以让引用许多列的冗长公式更短且易于阅读,但是,最好能够在度量值公式中包含表名。   12.1.2 函数案例 创建ProductFullCategory列和新的计算列,将这两个列中的值合并到新列中的新值内。假设我们想要在一个单值内同时展示产品类别和产品子类别,如手机-附件、手机-智能手机和PDA等。 在报表视图或数据视图中(此处使用报表视图),如果看一下“字段”窗格中的产品表,就会发现给出的结果中没有我们想要的任何字段。然而,我们有ProductCategory字段和ProductSubcategory字段,二者分别在其各自的表中,如图12-1所示。 右击“字段”窗格中的ProductSubcategory表,然后在弹出的快捷菜单中选择“新建列”选项,这样会确保新列被添加到ProductSubcategory表中,如图12-2所示。 公式栏将在报表画布或数据网格的顶部出现,可以在此处重命名列并输入DAX公式,如图12-3所示。   由于列名已在公式栏中突出显示,因此只需输入“ProductFullCategory=”,如图12-4所示。现在可以开始输入公式了,希望新列中的值以ProductCategory表中的ProductCategory名称开始,因为此列在不同但相关的表中,所以使用RELATED函数来获得它。 在等号后输入“R”,将出现一个下拉列表,其中有以字母R开头的所有DAX函数,用户输入的字母越多,下拉列表中的函数就越接近所需的函数,选择一个函数可以看到该函数的说明。向下拖动滚动条选择RELATED,如图12-5所示,然后按Enter键。 这时出现一个左括号和另一个下拉列表,其中包括可以传递到RELATED函数的所有可用的列,此外还会显示参数所预期的说明和详细信息,如图12-6所示。 表达式将始终出现在左括号和右括号之间。在这种情况下,我们的表达式将包含已传递到RELATED函数的单个参数,也就是要作为返回值来源的相关列。列的列表会自动缩小以仅显示相关的列,我们想要ProductCategory表中的ProductCategory列,因此选择ProductCategory[ProductCategory],然后输入右括号,如图12-7所示。     我们想要添加短画线符号来分隔各个值,因此在第一个表达式的右括号后面依次输入空格、&符号、左引号、空格、短画线(-)、另一个空格、右引号和另一个&符号。   该公式如下所示: ProductFullCategory=RELATED(ProductCategory[ProductCategory])&"-"& 最后输入另一个左括号,然后在打开的下拉列表中选择“[ProductSubcategory]”,从而完成公式输入,如图12-8所示。 按Enter键或单击公式栏中的选中标记完成该公式的输入,该公式将经过验证并添加到ProductSubcategory表中的字段列表,注意计算列在字段列表中有一个特殊图标,显示它包含一个公式,如       12.2 计算列 12.2.1 计算列 计算列使用数据分析表达式(DAX)计算结果,该表达式是一个旨在处理关系数据(如Power BI Desktop中的)的公式语言。DAX包括一个超过200个函数、运算符和构造的库,在创建公式时提供高度的灵活性,可以满足几乎任何数据分析的需求。 DAX公式类似于Excel公式,具有许多与Excel相同的功能,但是DAX函数旨在处理交互式地切片或筛选报表中的数据,例如Power BI Desktop中的数据。Excel可以在表中的每行使用不同的公式,而DAX公式不具备这样的功能。 12.2.2 计算列案例 创建一个报表,统计不同城市的超市销售额,将“省市和城市”作为单个值显示在同一行,现在表中没有想要的字段,如图12-10所示。     12.3 计算表 12.3.1 计算表 计算表使用数据分析表达式(DAX)计算结果,它是一个旨在处理如Power BI Desktop中的关系数据的公式语言。在Power BI Desktop中,大多数情况下,都要从外部数据源将数据导入模型。通常,计算表适合用于将其作为模型的一部分而存储的中间计算和数据,而非在运行中计算的或作为查询的一部分而存储的中间计算和数据。 与作为查询的一部分而创建的表不同,在报表视图或数据视图中创建的计算表是以已加载到模型中的数据为基础的。例如,可以选择合并或交叉联接两个表。与普通表一样,计算表也能与其他表建立关系,计算表中的列具有数据类型、格式设置,并能归属于数据类别,可以随意对列命名,并将其像其他字段一样添加到报表可视化效果中。 12.3.2 计算表案例 为了分析客服中心在2017年10月份和11月份的来电情况,需要将“客服中心10月份来电记录表.xlsx”和“客服中心11月份来电记录表.csv”合并成单个表。 使用计算表将这两个表合并非常容易。尽管可以在报表视图或数据视图中创建计算表,但是在数据视图中创建会稍微容易一点,因为在数据视图中可以立即查看新的计算表。首先导入数据源,在数据视图的“建模”功能区中,单击“新表”按钮,出现一个公式栏,如图12-14所示。

继续阅读