Excel Power Pivot - 分析数据
在上一章中,您学习了如何从一组普通数据表创建 Power PivotTable。 在本章中,您将了解当数据表包含数千行时如何使用 Power PivotTable 分析数据。
为了更好地理解,我们将从 access 数据库导入数据,您知道这是一个关系数据库。
从 Access 数据库加载数据
要从 Access 数据库加载数据,请按照给定的步骤操作 −
在 Excel 中打开一个新的空白工作簿。
单击"数据模型"组中的"管理"。
单击功能区上的 POWERPIVOT 选项卡。
出现 Power Pivot 窗口。
在 Power Pivot 窗口中单击"主页"选项卡。
单击获取外部数据组中的来自数据库。
从下拉列表中选择来自 Access。
数据表导入向导出现。
提供友情链接名称。
浏览到 Access 数据库文件 Events.accdb,事件数据库文件。
单击下一步 > 按钮。
数据表导入 向导显示用于选择如何导入数据的选项。
单击从表和视图列表中选择以选择要导入的数据,然后单击下一步。
表导入 向导显示您选择的 Access 数据库中的所有表。 选中所有框以选择所有表,然后单击完成。
数据表导入 向导显示 – Importing 并显示导入状态。 这可能需要几分钟时间,您可以通过单击停止导入 按钮来停止导入。
数据导入完成后,表导入向导显示-成功并显示导入结果。 点击关闭。
Power Pivot 在数据视图的不同选项卡中显示所有导入的表。
单击图表视图。
您可以观察到表之间存在关系 - Disciplines 和 Medals。 这是因为,当您从 Access 等关系数据库导入数据时,数据库中存在的关系也会导入 Power Pivot 中的数据模型。
从数据模型创建数据透视表
使用您在上一节中导入的表创建一个数据透视表,如下所示 −
单击功能区上的数据透视表。
从下拉列表中选择数据透视表。
在出现的"创建数据透视表"对话框中选择"新建工作表",然后单击"确定"。
在 Excel 窗口的新工作表中创建了一个空的数据透视表。
作为 Power Pivot 数据模型一部分的所有导入表都显示在数据透视表字段列表中。
将 Medals 表中的 NOC_CountryRegion 字段拖到 COLUMNS 区域。
将 Discipline 从 Disciplines 表拖到 ROWS 区域。
过滤 Discipline 以仅显示五项运动:射箭、跳水、击剑、花样滑冰和速滑。 这可以在数据透视表字段区域或数据透视表本身的行标签过滤器中完成。
将 Medal 从奖牌表拖到 VALUES 区域。
再次从"Medals"表中选择"Medal"并将其拖到 FILTERS 区域。
数据透视表由添加的字段和区域中选择的布局填充。
使用数据透视表分析数据
您可能只想显示奖牌数 > 80 的那些值。要执行此操作,请按照给定的步骤操作 −
单击"列标签"右侧的箭头。
从下拉列表中选择值过滤器。
选择大于...。 来自第二个下拉列表。
单击"确定"。
出现值过滤器对话框。 在最右边的框中键入 80,然后单击"确定"。
数据透视表仅显示奖牌总数超过 80 的地区。
只需几个步骤,您就可以从不同的表格中获得您想要的特定报告。 这之所以成为可能,是因为 Access 数据库中的表之间预先存在的关系。 当您同时从数据库中导入所有表时,Power Pivot 会在其数据模型中重新创建关系。
在 Power Pivot 中汇总来自不同来源的数据
如果您从不同来源获取数据表,或者如果您不同时从数据库导入表,或者如果您在工作簿中创建新的 Excel 表并将它们添加到数据模型,则必须创建 数据透视表中要用于分析和汇总的表之间的关系。
在工作簿中新建一个工作表。
创建 Excel 表格 – Sports。
将 Sports 表添加到数据模型。
使用字段 SportID 在表 Disciplines 和 Sports 之间创建关系。
将字段 Sport 添加到数据透视表。
在 ROWS 区域 - Discipline 和 Sport。
扩展数据分析
您还可以获取表 Events 以进一步分析数据。
使用字段 DisciplineEvent 在表 - Events 和 Medals 之间创建关系。
将表 Hosts 添加到工作簿和数据模型。
使用计算列扩展数据模型
要将 Hosts 表连接到任何其他表,它应该有一个字段,其值可以唯一标识 Hosts 表中的每一行。 由于 Host 表中不存在这样的字段,您可以在 Hosts 表中创建一个计算列,以便它包含唯一值。
转到 PowerPivot 窗口数据视图中的 Hosts 表。
单击功能区上的"设计"选项卡。
点击添加。
带有标题"添加列"的最右侧列突出显示。
在公式栏中键入以下 DAX 公式 = CONCATENATE ([Edition], [Season])
按回车键。
创建了一个标题为 CalculatedColumn1 的新列,该列由上述 DAX 公式产生的值填充。
右键单击新列并从下拉列表中选择重命名列。
在新列的标题中键入 EditionID。
如您所见,EditionID 列在 Hosts 表中具有唯一值。
使用计算列创建关系
如果您必须在 Hosts 表和 Medals 表之间创建关系,则 EditionID 列也应该存在于 Medals 表中 . 在 Medals 表中创建一个计算列,如下所示 −
单击 Power Pivot 数据视图中的奖牌表 Medals。
单击功能区上的"设计"选项卡。
点击添加。
在公式栏中输入 DAX 公式 = YEAR ([EDITION]) 并按 Enter。
将创建的新列重命名为 Year,然后单击Add。
在公式栏中键入以下 DAX 公式 = CONCATENATE ([Year], [Season])
将创建的新列重命名为 EditionID。
如您所见,Medals 表中的 EditionID 列与 Hosts 表中的 EditionID 列具有相同的值。 因此,您可以使用 EditionID 字段在表 – Medals 和 Sports 之间创建关系。
切换到 PowerPivot 窗口中的图表视图。
使用从计算列(即 EditionID)获得的字段在表 - Medals 和 Hosts 之间创建关系。
现在您可以将主机表中的字段添加到 Power PivotTable。