教程:为 Power View 报表优化示例 PowerPivot 模型

重要说明重要提示

请查看 office.microsoft.com 上的最新 Power View 文档。 Power View 现在是 Microsoft Excel 2013 的一个功能,并且是 Microsoft SharePoint Server 2010 和 2013 Enterprise Edition 的 Microsoft SQL Server 2012 Reporting Services 外接程序的一部分。

在本教程中,您将在 PowerPivot for Excel 中修改 Excel 工作簿以建立一个小而功能完善的模型,您可以将此模型用作示例 Power View 报表的基础。 您在本教程中在 PowerPivot 中所执行的所有操作也可以在您在 SQL Server Data Tools (SSDT) 中创建的表格模型中执行。 实际上,您在 SQL Server Data Tools (SSDT) 中执行的操作要多得多。 有关详细信息,请参阅表格建模(SSAS 表格)

PowerPivot 文件和基于它的 Power View 报表

PowerPivot 和 Power View 文件

先决条件

要完成本教程,请执行以下操作:

注意注意

HelloWorld_Picnic 是一个很小的示例数据模型,演示如何设置数据模型属性以便最好地在 Power View 报表中展示这些数据。在应用场景中,数据用于计划和跟踪野餐食品和饮料。

本文内容

在开始教程之前

在 PowerPivot 中创建链接表

启动 Power View

在 PowerPivot 中创建关系

在 Power View 中查看更改

在 PowerPivot 中设置报表属性

在 Power View 中使用默认值创建表和卡

在 PowerPivot 中合并表和添加图像 URL

尝试在 Power View 中添加图像

在 PowerPivot 中确定图像 URL

在 Power View 中将图像添加到表

PowerPivot 中的默认聚合、日期、工具提示、计算度量值以及计算列

在 Power View 中创建气泡图

创建用于验证模型的切片器

摘要

在开始教程之前

在开始本教程之前:

  • 将 HelloWorldPicnicModelPowerPivotTutorialRTM.xlsx 文件保存到 SharePoint 文档库或 PowerPivot 库。

    • 如果将该文件保存到 SharePoint 文档库中,则需要创建一个共享数据源,该数据源指向保存在 SharePoint 文档库中的 HelloWorldPicnicModelPowerPivotTutorialRTM.xlsx 文件。

    • 如果将该文件保存到 PowerPivot 库,则不需要共享数据源。 可直接从库打开 Power View。

  • 将图像保存到关联的 SharePoint 文档库。 请参阅有关 Power View 和 PowerPivot HelloWorldPicnic 示例的图像的详细信息。

创建共享数据源 (RSDS) 文件以指向 PowerPivot (XLSX) 文件

  1. 在“共享文档”中,创建一个 HelloWorldPicnicSQL2012 文件夹,并将 HelloWorldPicnicModelPowerPivotTutorialRTM.xlsx 文件保存到该文件夹中。

  2. 在 HelloWorldPicnicSQL2012 文件夹中,依次单击**“文档”选项卡、“新建文档”旁边的箭头和“报表数据源”**。

    如果**“新建文档”选项卡上没有“报表数据源”**选项,则对 SharePoint 网站具有足够权限的人员需要向此网站添加该内容类型。 有关详细信息,请参阅将报表服务器内容类型添加到库中(SharePoint 集成模式下的 Reporting Services)

  3. 在**“名称”**框中,键入 HelloWorldPicnicRSDS。

    记下 RSDS 文件扩展名。

  4. 在**“数据源类型”框中,单击“Power View 的 Microsoft BI 语义模型”**。

  5. XLSX 文件的**“连接字符串”**是该文件的完整 URL(包括文件名)。 例如:

    http://<myserver>/Shared%20Documents/HelloWorldPicnicSQL2012/HelloWorldPicnicModelPowerPivotTutorialRTM.xlsx

  6. 对于**“凭据”,单击“Windows 身份验证(集成)或 SharePoint 用户”**。

  7. 单击**“测试连接”**。

    将看到一条指示连接测试成功的消息。

  8. 单击**“确定”**。

保存图像

  1. 在 HelloWorldPicnicSQL2012 文件夹中创建一个“图像”文件夹。 例如:

    http://<myserver>/Shared Documents/HelloWorldPicnicSQL2012/Images

  2. 在“图像”文件夹中,保存从下载中心下载的图像。 有关详细信息,请参阅本教程开头的“先决条件”部分。

从 PowerPivot 库启动 PowerPivot

  1. 从 PowerPivot 库中,单击文件 HelloWorldPicnicModelPowerPivotTutorialRTM.xlsx 的图像。

    此时将在 SharePoint 中打开此工作簿。

  2. 单击**“在 Excel 中打开”**。

  3. 单击 PowerPivot 选项卡,然后单击“PowerPivot 窗口”。

从共享文档启动 PowerPivot

  1. 在“共享文档”中,单击 HelloWorldPicnicModelPowerPivotTutorialRTM.xlsx 旁边的下拉箭头,然后单击**“在 Microsoft Excel 中编辑”**。

  2. 单击 PowerPivot 选项卡,然后单击“PowerPivot 窗口”。

在 Excel 和 PowerPivot 中

在 PowerPivot 中创建链接表

  1. 在 Excel 窗口中,选择 Items 工作表中的所有列和行。

  2. 在**“主文件夹”选项卡上,单击“套用表格式”**,然后选择表的格式。 您可以生成喜欢的任何样式。

  3. PowerPivot 选项卡中,单击**“创建链接表”**。

    请确保表中包含正确的列和行,并且确保选中**“我的表具有标题”,然后单击“确定”**。

    此表将在 PowerPivot 中的新选项卡上打开。

  4. 右键单击选项卡并将其重命名为“Items”。

  5. 重复此过程三次,以便在 PowerPivot 中为 Distributors、Quantities 和 Dates 创建链接表。

  6. 单击**“保存”**,您现在将具有一个模型 — 还不是真正的模型,但无论如何也是一个模型。

    注意注意

    在保存后您将回到 Excel 窗口中。

在 Power View 中

启动 Power View

从“共享文档”

  • 在“共享文档”文件夹中,单击您在本教程的早期创建的共享数据源 HelloWorldPicnicRSDS.rsds 旁边的箭头,然后单击**“创建 Power View 报表”**。

从 PowerPivot

  • 在 PowerPivot 库中,单击位于 HelloWorldPicnicModelPowerPivotTutorialRTM.xlsx 带区右上角的**“创建 Power View 报表”**图标。

启动报表

Power View 将打开并显示一个空白视图。 右侧的字段列表包含您在 PowerPivot 中创建的表:Dates、Distributors、Quantities 和 Items。

  1. 展开 Items 表。

    在 PowerPivot 中,此表有若干个字段。

  2. 单击 Items 表名本身。

    不执行任何操作。 稍后我们将返回此处。

  3. 单击 Name 字段。

    现在您有了一个具有一列(Name 列)的表。

    但请注意,目前所有其他表都是灰显的,因而不可用。 原因是什么?

在 PowerPivot 中:创建关系

其他表之所以灰显,是因为此模型中的表之间没有关系。

在 PowerPivot 中创建关系

  1. 在 PowerPivot 窗口的主文件夹”选项卡上,单击“关系图视图”

    您可以在模型中看到这些表,但表之间没有关系。

  2. 拖动表,以便您可以在窗口中看到所有这些表。 将 Quantities 表放在中间位置,因为它是模型的中心。

  3. 从 Items 表中的 ItemID 字段拖到 Quantities 表中的 ItemID 字段。

    PowerPivot 将在两个表之间创建一个一对多关系。 而不在意您如何拖动这些表。 此关系的一方和多方是相同的。 有关一对多关系的详细信息,请参阅表关系指南(位于 Microsoft Access 帮助中)。

  4. 拖动以下字段以便在表之间创建其他关系:

    • Dates 表和 Quantities 表中的 Date 字段。

    • Items 表和 Distributors 表中的 DistribID 字段。

  5. 保存 Excel (XLSX) 文件,这将保存您的模型。

在 Power View 中

在更改模型后,您需要刷新报表。 可以选择两个“刷新”按钮:

  • 如果模型中的数据已更改,则按 Power View Quick Access 工具栏上的**“刷新”**按钮可刷新数据。

  • Internet Explorer 中的**“刷新”**按钮可刷新模型,但会删除自上次保存以来所进行的所有更改。

  1. 单击 Power View 的**“刷新”**按钮。

    您将注意到没有发生任何变化。

  2. 单击 Internet Explorer 的**“刷新”**按钮。

  3. 在这种情况下,您尚未进行任何值得保存的更改,因此单击**“离开此页”**。

    字段列表仍然存在,但视图是空的。

  4. 展开 Items 表,然后将 Name 字段拖到视图中。

    请注意,所有其他表都不灰显。 另请注意,只有一个“苹果”值。

  5. 展开 Quantities 表,然后将 Qty Served 字段拖到 Name 表中。

    现在有多个“苹果”值。 将不对 Qty Served 值进行汇总。

  6. 尝试下滚列表。

    注意,随着 Power View 检索更多的值,滚动条将变得越来越小。 Power View 只在需要时才检索值,以便提高性能。

  7. 在字段列表的布局(下面)部分中,单击 Qty Served 字段旁边的下拉箭头,然后单击**“总和”**。

在 PowerPivot 中:设置报表属性

设置报表属性以基于此模型制作报表的时机会将更为适当。

  1. 在 PowerPivot 窗口的**“文件”菜单中,单击“切换到高级模式”**。

  2. 转至 Items 表。

  3. 在**“高级”选项卡上,单击“表行为”**。

  4. 从**“行标识符”**中,单击 ItemID

    请注意,现在此对话框中的剩余项都是可用的。 在您选择行标识符之前,它们都处于灰显状态。

  5. 对于**“保留唯一行”**,请单击“Name”。

    这样,即使此列的两个不同行中具有两个完全相同的值,但如果它们具有不同的 ItemID 值,则 Power View 也不会对其进行汇总。 例如,“苹果”:在 Name 字段中有两个不同的“苹果”值。 Power View 将不再像之前那样对它们进行汇总。

  6. 对于**“默认标签”**,请单击“名称”。

  7. 单击**“确定”**。

  8. 单击**“默认字段集”**。

  9. 添加 Name、Category 和 Color,然后单击**“确定”**。

    如果您单击表名而不是单个字段,则这些字段是将添加到 Power View 的视图中的默认字段。

  10. 保存 Excel (XLSX) 文件以便保存您的模型。

在 Power View 中:使用默认值创建表和卡

  1. 单击 Internet Explorer 的**“刷新”**按钮。

    因为您尚未保存报表,所以您会丢失所做的一些更改。

  2. 单击**“离开此页”**。

  3. 展开 Items 表。

    请注意 ItemID 和 Name 字段旁边指示它们是唯一字段的图标以及此表的默认标签。

  4. 将 Name 字段拖到视图中。

    注意现在有两个“苹果”值。

  5. 单击**“撤消”**按钮。

  6. 单击 Items 表本身。

    此时将使用您标识为此表的默认字段的字段(Name、Category 和 Color)创建一个表。

  7. 使此表保持选中状态,单击“可视化”库中的下拉箭头,然后单击“卡”。

    注意,Name 字段中的值将突出显示,因为 Name 是 Items 表的默认标签字段。

  8. 单击空白视图中的某处,而不选择卡。

  9. 在字段列表的字段(上面)部分中,展开 Distributors 表。

    注意它只包含 Distributor 和 DistID 字段。

  10. 在 SharePoint 站点上的某个位置保存 Power View 报表。

在 PowerPivot 中:合并表和添加图像

我们可以将 Distributors 表中的单个字段合并到 Items 表中以清理此模型。

创建计算列

  1. 在 PowerPivot 窗口的 Items 表中,右键单击**“添加列”列并单击“插入列”**。

  2. 选择新列,右键单击,然后单击**“重命名”**并将其重命名为 Distributors。

  3. 在 Excel 的公式框中,键入

    =RELATED(Distributors[Distributor Name])
    

    请注意,当您键入内容时,公式将自动填入。 您可以使用记忆式键入功能来确保您具有正确的语法。

    Distributor 名称现在将处于 Items 表中,因此,报表创建者不再需要 Distributors 表,也不再需要 Items 表中的 DistID 字段。

  4. 右键单击 DistID 列,然后单击**“从客户端工具中隐藏”**。

    这会在 Power View 中隐藏此列,但您仍可在 PowerPivot 中看到此列。

  5. 右键单击 Distributors 表选项卡,然后单击**“从客户工具中隐藏”**。

向模型添加图像

在可以将图像添加到模型之前,从 Microsoft 下载中心下载图像,然后将它们保存到 SharePoint 站点。 有关详细信息,请参阅开始之前部分。

  1. 将计算列添加到 Items 表并将其命名为 Image Name。

  2. 粘贴此公式:

    =IFERROR(IF(FIND("apple",[Name])>0, SWITCH(Left([Color],1),"b","applejuice","g",[Name]& "g","r",[Name],[Name]),[Name]),[Name])
    

    此列使图像名称对应于 Name 字段中的项名称。

  3. 添加另一个计算列并将其命名为 Photo。 粘贴到此公式中,并且用您的服务器名称替换 <servername>:

    ="http://<servername>/Shared Documents/HelloWorldPicnicSQL2012/Images/rs_crescent_picnic_image_" & [Image Name] & ".png"
    

    每个项都有一个关联的照片。 这公式会将 Image Name 列中的名称与图像所在的 URL 串联起来,并加上文件扩展名 .png。

  4. 添加另一个计算列并将其命名为 Drawing。 粘贴到此公式中,并且用您的服务器名称替换 <servername>:

    ="http://<servername>/Shared Documents/HelloWorldPicnicSQL2012/Images/rs_crescent_picnic_drawing_" & [Image Name] & ".png"
    

    每个项还都有一个关联的绘图。

  5. 添加另一个计算列并将其命名为 Category Drawing。 粘贴到此公式中,并且用您的服务器名称替换 <servername>:

    ="http://<servername>/Shared Documents/HelloWorldPicnicSQL2012/Images/rs_crescent_picnic_drawing_" & [Category] & ".png"
    

    每个类别都有一个关联的绘图。

  6. 另外添加一个计算列并将其命名为 Category Photo。 粘贴到此公式中,并且用您的服务器名称替换 <servername>:

    ="http://<servername>/Shared Documents/HelloWorldPicnicSQL2012/Images/rs_crescent_picnic_image_" & [Category] & ".png"
    

    每个类别还都有一个关联的照片。

  7. 保存 Excel (XLSX) 文件以便保存您的模型。

    请注意,您将回到 Excel 窗口,并且计算列不显示。 它们仅位于 PowerPivot 中。

让我们看看它在 Power View 中如何显示。

在 Power View 中:尝试将图像添加到表

  1. 单击 Internet Explorer 的**“刷新”**按钮。

    因为您已保存报表,所以您不会丢失您所做的一些更改。

    注意,现在只有三个表 — Distributors 表已消失了。

  2. 展开 Items 表。

    请注意新字段,包括 Distributor 字段。

  3. 将 Photo 列添加到视图上的表中。

    哎呀! 没有照片。 只是 URL 而已。 返回模型。

在 PowerPivot 中:确定图像 URL

  1. 单击 Items 表,然后单击**“高级”**选项卡。

  2. 对于所有四个 URL 字段选中**“图像 URL”**框。

  3. 单击**“表行为”**。

  4. 将**“默认图像”设置为“绘画”,然后单击“确定”**。

  5. 单击**“默认字段集”,然后将“绘画”添加到“默认字段”**集。

  6. 单击**“确定”**。

  7. 保存 Excel (XLSX) 文件以便保存您的模型。

在 Power View 中:向表中添加图像、日期和数字

添加图像

  1. 单击 Internet Explorer 的**“刷新”**按钮。

    您将丢失最近所做的更改。

  2. 将 Drawing 字段添加到表中。

    现在有图像了!

现在来看看日期和数字。

添加日期和数字

  1. 单击视图中的空白空间以启动一个新的可视化对象。

  2. 展开 Dates 表,然后将 Month Name 字段拖到视图中。

  3. 从 Items 表中,将 Category 字段添加到同一个表中。

    请注意,可视化对象库未提供任何图表。 一个图表至少需要一个聚合值。

  4. 在 Quantities 表中,单击 Qty Served 字段旁边的下拉箭头,然后单击**“添加到表作为总和”**。

    现在表已有了一个总和字段,图表已可用。

    Qty Served 字段包含整数。 Power View 默认情况下不对它们进行汇总,原因在于整数可能位于不应该进行汇总的字段(例如键字段)中。 您可以更改模型中的默认行为。

  5. 单击**“折线图”**。

    您应该可以看到:

    • Values 中为 Qty Served。

    • Axis 中为 Month Name。

    • Series 中为 Category。

    否则,将这些字段拖到正确的框中。

    但也有一些问题:月份以 April、August 和 December 开头,而以 September 结尾。 它们是按字母顺序排列的,而不是以时间顺序排列。

    返回模型。

在 PowerPivot 中:默认聚合、日期、工具提示、计算度量值以及计算列

计算列针对表中的每一行计算结果并存储结果。 计算度量值是动态计算的,具体取决于在 PivotTable 或 Power View 报表中计算它们的上下文。 有关计算列和计算度量值的详细信息,请参阅生成计算的公式

设置月份顺序

  1. 在 PowerPivot 窗口中,转至 Dates 表。

  2. 在**“设计”选项卡中,单击“标记为日期表”**。

  3. 选择 Date 字段并单击**“确定”**。

    注意注意

    Date 字段中的值必须是唯一的。

  4. 选择 Month Name 列,并在**“主文件夹”选项卡上单击“按列排序”,然后对 Month Number 列执行“对月份名称排序”**。

  5. 选择 Month Number 列,右键单击,然后单击**“从客户端工具中隐藏”**。

  6. 对于 Day Name 和 Day Number 字段,重复步骤 4 和 5。

设置默认聚合

  1. 在 PowerPivot 窗口中,转至 Quantities 表。

  2. 选择 Qty Served、Qty Consumed 和 Attendees 列。

  3. 在**“高级”选项卡上,单击“汇总方式”,然后单击“总和”**。

设置说明

  • 右键单击 Qty Served 列,单击**“说明”**,然后键入:

    提供的数量。

    此文本将作为工具提示出现在字段列表的字段(上面)部分中的 Qty Served 字段上方。 您可以将工具提示添加到每个表和字段。

创建计算列

  1. 在 Quantities 表中,插入一列并将其重命名为 Leftovers。 在 Excel 的公式框中,键入:

    =[Qty Served]-[Qty Consumed]
    

    当您键入时,PowerPivot 将自动填充列名。

  2. 选择 Leftovers 列,在**“高级”选项卡上,单击“汇总方式”,然后单击“总和”**。

创建计算度量值

  1. 仍在 Quantities 表中,单击表下面部分中分隔线下方的任意单元格。

    此区域称为度量值网格。 您可以通过**“主文件夹”**选项卡上的一个按钮隐藏或显示此网格。 您可以将度量值放入任意列的任意单元格中。

  2. 在 Excel 公式框中粘贴 quantity served 的年初至今公式:

    Qty Served YTD:=TOTALYTD(SUM([Qty Served]),Dates[Date])
    
  3. 保存 Excel (XLSX) 文件以便保存您的模型。

在 Power View 中:创建气泡图

  1. 单击 Internet Explorer 的**“刷新”**按钮。

    什么发生了变化?

    • 折线图将刷新以便使月份名称按顺序排列。

    • 字段列表的 Quantities 表中具有新的数字字段,例如 Qty Served,在字段的旁边具有小的计算器符号。 Qty Served 字段现在出现两次 — 一个作为度量值聚合,另一个不聚合。 您可以在模型中隐藏未聚合的列。

    • 同样,在 Quantities 表中,新的 Qty Served YTD 度量值旁边具有一个小的计算器符号。

  2. 在字段列表的字段部分中,将鼠标悬停在 Qty Served 字段上方。

    此时将显示工具提示。

  3. 使用 Name、Qty Served、Qty Served YTD 和 Leftovers 字段创建一个表。

  4. 在**“可视化对象”库中,单击“散点图”**图表。

    确保 Qty Served YTD 字段位于**“X 值”**框中。

  5. 从字段列表的字段部分将 Month Name 字段拖到字段列表的布局(下面)部分中的**“播放轴”**框中。

  6. 单击播放箭头。

    注意,随着 Qty Served YTD 值增加,气泡将逐渐从左向右移动。

在 Excel 中:验证模型

您还可以通过对 Excel 中的数据创建和测试切片器,验证您的模型已正确发布。 您将 XLSX 文件保存到已完成的 SharePoint 站点。 您创建一个数据透视表并且在 Excel 中向该表添加切片器。 在 SharePoint 站点上的 XLSX 文件中,单击某一切片器,然后它将发送测试数据连接的查询。 如果该切片器成功,则证实嵌入的 PowerPivot 模型已成功部署并且凭据已正确配置。

  1. 在 PowerPivot 窗口中,在 PowerPivot 选项卡上单击 PivotChart,然后单击**“新工作表”**。

    请注意,新工作表在右侧显示 PowerPivot 字段列表。

  2. 从 Dates 表中,将 Month Name 拖到**“水平切片器”**。

  3. 从 Items 表中,将 Color 拖到**“垂直切片器”,并将 Type 拖到“水平切片器”**。

  4. 从这些表中:

    1. Items 表:将 Serve 拖到**“图例字段”**。

    2. Items 表:将 Category 拖到**“轴字段”**。

    3. Quantities 表:将 Leftovers 拖到**“值”**(请注意,它自动作为总计聚合)。

  5. 右键单击图表,然后单击**“更改图表类型”**。

  6. 单击**“堆积柱形图”**。

  7. 单击切片器中的不同值以筛选图表。

切片器起作用,因此,在 Excel 工作簿中嵌入的 PowerPivot 模型已成功部署并且凭据已正确配置。

摘要

您已看到了如何使用原始数据开始操作,以及如何:

  • 创建了关系。

  • 设置了报表处理,用于标识:

    • 唯一值。

    • 默认标签。

    • 默认图像。

    • 表中的默认字段。

  • 添加了计算列和一个度量值。

  • 合并了表。

  • 设置了数字格式。

  • 将日期名称字段绑定到了数字字段以进行排序。

  • 引入了图像。

此外,您还可以看到这些更改内容如何更改了数据在报表中出现的方式。

后续步骤

既然您已完成了本教程,就可以使用已创建的模型来尝试 SQL Server 2012 的 Power View 示例SQL Server 2012 示例自述文件中的教程:在 Power View 中创建示例报表了。

请参阅

概念

Power View (SSRS)