Excel Power Pivot - 层次结构


数据模型中的层次结构是数据表中嵌套列的列表,在 Power PivotTable 中使用时将其视为单个项目。例如,如果数据表中有国家/地区、州/省、城市等列,则可以定义层次结构以将三列合并为一个字段。

在 Power PivotTable 字段列表中,层次结构显示为一个字段。因此,您可以仅向数据透视表添加一个字段,而不是层次结构中的三个字段。此外,它使您能够以有意义的方式向上或向下移动嵌套级别。

请考虑以下数据模型作为本章的说明。

层次结构

创建层次结构

您可以在数据模型的图表视图中创建层次结构。请注意,您可以仅基于单个数据表创建层次结构。

  • 按顺序单击数据表 Medal 中的列 - Sport、DisciplineID 和 Event。请记住,顺序对于创建有意义的层次结构非常重要。

  • 右键单击所选内容。

  • 从下拉列表中选择创建层次结构。

创建层次结构

将创建具有三个选定字段作为子级别的层次结构字段。

层次字段

重命名层次结构

要重命名层次结构字段,请执行以下操作 -

  • 右键单击“Hierarchy1”。

  • 从下拉列表中选择重命名。

重命名层次结构

输入EventHierarchy

事件层次结构

在数据模型中创建具有层次结构的数据透视表

您可以使用在数据模型中创建的层次结构来创建 Power 数据透视表。

  • 单击 Power Pivot 窗口中功能区上的“数据透视表”选项卡。

  • 单击功能区上的数据透视表。

数据模型的层次结构

将出现“创建数据透视表”对话框。选择“新建工作表”并单击“确定”。

选择新工作表并单击确定

将在新工作表中创建一个空数据透视表。

数据透视表为空

在数据透视表字段列表中,EventHierarchy显示为奖牌表中的字段。奖牌表中的其他字段已折叠并显示为更多字段。

  • 单击箭EventHierarchy 前面的箭头。

  • 箭单击更多字段前面的箭头。

将显示 EventHierarchy 下的字段。奖牌表中的所有字段都将显示在更多字段下。

在事件层次结构下

正如您所观察到的,添加到层次结构中的三个字段也出现在带有复选框的更多字段下。如果您不希望它们出现在“更多字段”下的“数据透视表字段”列表中,则必须隐藏数据表中的列 - Power Pivot 窗口中数据视图中的奖章。您随时可以随时取消隐藏它们。

将字段添加到数据透视表,如下所示 -

  • EventHierarchy拖至ROWS 区域。

  • 将奖章拖至 Σ VALUES 区域。

拖动事件层次结构

“运动”字段的值显示在数据透视表中,前面有一个 + 号。显示每项运动的奖牌数。

  • 单击水上运动之前的+号。将显示 Aquatics 下的 DisciplineID 字段值。

  • 单击出现的子 D22。将显示 D22 下的事件字段值。

学科ID

正如您所观察到的,奖牌计数是针对事件给出的,在父级 - DisciplineID中进行总结,在父级 - 体育中进一步进行总结。

创建基于多个表的层次结构

假设您想要在数据透视表中显示学科而不是学科 ID,以使其成为更具可读性和易于理解的摘要。为此,您需要在奖牌表中包含“纪律”字段,但据您所知,该字段并不存在。学科字段位于学科数据表中,但您无法使用多个表中的字段创建层次结构。但是,有一种方法可以从另一个表中获取所需的字段。

如您所知,表格 - 奖牌和纪律是相关的。您可以通过使用与 DAX 的关系创建列,将“纪律”表中的“纪律”字段添加到“奖牌”表中。

  • 单击 Power Pivot 窗口中的数据视图。

  • 单击功能区上的“设计”选项卡。

  • 单击添加。

表格右侧的列 - 添加列突出显示。

在编辑栏中键入 = RELATED (Disciplines [Discipline]) 。创建一个新列 -计算列 1,其值作为学科表中的学科字段值。

学科领域

将由此在 Medals 表中获得的新列重命名为 Discipline。接下来,您必须从层次结构中删除 DisciplineID 并添加 Discipline,您将在以下部分中了解这一点。

从层次结构中删除子级别

正如您所观察到的,层次结构仅在图表视图中可见,而在数据视图中不可见。因此,您只能在图表视图中编辑层次结构。

  • 单击 Power Pivot 窗口中的图表视图。

  • 右键单击“EventHierarchy”中的“DisciplineID”。

  • 从下拉列表中选择从层次结构中删除。

从层次结构中删除

出现确认对话框。单击从层次结构中删除

确认对话框

字段 DisciplineID 将从层次结构中删除。请记住,您已从层次结构中删除了该字段,但源字段仍然存在于数据表中。

接下来,您需要将 Discipline 字段添加到 EventHierarchy。

将子级别添加到层次结构

您可以将字段“Discipline”添加到现有层次结构 - EventHierarchy,如下所示 -

  • 单击奖牌表中的字段。

  • 将其拖至事件层次结构下方的事件字段。

添加儿童级别

Discipline 字段被添加到 EventHierarchy 中。

添加字段

正如您所观察到的,EventHierarchy 中字段的顺序是 Sport-Event-Discipline。但是,正如你所知,它必须是体育-纪律-赛事。因此,您需要更改字段的顺序。

更改层次结构中子级别的顺序

要将“纪律”字段移至“运动”字段之后的位置,请执行以下操作 -

  • 右键单击 EventHierarchy 中的“Discipline”字段。

  • 从下拉列表中选择上移。

儿童级别顺序

字段的顺序更改为体育-纪律-事件。

字段顺序

层次结构发生变化的数据透视表

要查看您在数据透视表的 EventHierarchy 中所做的更改,无需创建新的数据透视表。您可以在现有数据透视表本身中查看它们。

单击 Excel 窗口中包含数据透视表的工作表。

单击工作表

您可以观察到,在数据透视表字段列表中,EventHierarchy 中的子级别反映了您在数据模型的层次结构中所做的更改。相同的更改也会相应地反映在数据透视表中。

单击数据透视表中 Aquatics 前面的 + 号。子级别显示为“纪律”字段的值。

字段列表

隐藏和显示层次结构

您可以选择隐藏层次结构并在需要时显示它们。

  • 取消选中图表视图顶部菜单中的“层次结构”框以隐藏层次结构。

  • 选中层次结构框以显示层次结构。

隐藏和显示层次结构

以其他方式创建层次结构

除了前面部分中创建层次结构的方式之外,您还可以通过另外两种方式创建层次结构。

1. 单击图表视图中奖牌数据表右上角的创建层次结构按钮。

创建层次结构

在表中创建一个新的层次结构,其中没有任何字段。

表中的新层次结构

按顺序将“年份”和“季节”字段拖到新的层次结构中。层次结构显示子级别。

菲尔兹年

2. 创建相同层次结构的另一种方法如下 -

  • 右键单击图表视图中奖牌数据表中的“年份”字段。

  • 从下拉列表中选择创建层次结构。

相同的层次结构

在表中创建一个新的层次结构,并将“年份”作为子字段。

子场

将田间季节拖至层次结构中。层次结构显示子级别。

野外季节

删除层次结构

您可以从数据模型中删除层次结构,如下所示 -

  • 右键单击层次结构。

  • 从下拉列表中选择删除。

删除层次结构

出现确认对话框。单击从模型中删除

从模型中删除

层次结构被删除。

层次结构已删除

使用层次结构进行计算

您可以使用层次结构创建计算。在 EventsHierarchy 中,您可以将子级别的奖牌数量显示为其父级别的奖牌数量的百分比,如下所示 -

  • 右键单击事件的奖牌计数值。

  • 从下拉列表中选择值字段设置。

使用层次结构进行计算

出现值字段设置对话框。

  • 单击“值显示为”选项卡。

  • 从列表中选择父行总计的百分比,然后单击“确定”。

字段设置

子级显示为父级总计的百分比。您可以通过对父级的子级别的百分比值进行求和来验证这一点。总和将为 100%。

家长总计

向上钻取和向下钻取层次结构

您可以使用快速浏览工具快速向上钻取和向下钻取层次结构中的各个级别。

  • 单击数据透视表中事件字段的值。

  • 单击快速浏览工具 -探索工具该工具显示在包含所选值的单元格的右下角。

向上钻取

将出现带有“向上钻取”选项的“探索”框。这是因为您只能从事件中向上钻取,因为它下面没有子级别。

单击向上钻取

单击向上钻取

数据透视表数据向上钻取到学科。

钻取

单击“快速浏览”工具 -探索工具该工具出现在包含值的单元格的右下角。

将出现浏览框,并显示向上钻取和向下钻取选项。这是因为您可以从“纪律”向上钻取到“运动”或向下钻取到“赛事”。

探索盒子

这样您就可以在层次结构中快速上下移动。