Excel Power Pivot – 层次结构
Excel Power Pivot – 层次结构
数据模型中的层次结构是数据表中嵌套列的列表,在 Power PivotTable 中使用时,这些列被视为单个项目。例如,如果您在数据表中有列 – Country、State、City,则可以定义层次结构以将三列合并为一个字段。
在 Power 数据透视表字段列表中,层次结构显示为一个字段。因此,您可以只向数据透视表添加一个字段,而不是层次结构中的三个字段。此外,它使您能够以有意义的方式向上或向下移动嵌套级别。
考虑以下数据模型在本章中进行说明。
创建层次结构
您可以在数据模型的图表视图中创建层次结构。请注意,您只能基于单个数据表创建层次结构。
-
按顺序单击数据表 Medal 中的列 – Sport、DisciplineID 和 Event。请记住,顺序对于创建有意义的层次结构很重要。
-
右键单击选择。
-
从下拉列表中选择创建层次结构。
创建了三个选定字段作为子级别的层次结构字段。
重命名层次结构
要重命名层次结构字段,请执行以下操作 –
-
右键单击 Hierarchy1。
-
从下拉列表中选择重命名。
键入EventHierarchy。
在数据模型中创建具有层次结构的数据透视表
您可以使用在数据模型中创建的层次结构创建 Power PivotTable。
-
单击 Power Pivot 窗口中功能区上的数据透视表选项卡。
-
单击功能区上的数据透视表。
在创建数据透视表对话框出现。选择新建工作表,然后单击确定。
在新工作表中创建一个空的数据透视表。
在数据透视表字段列表中,事件层次结构显示为奖牌表中的一个字段。Medals 表中的其他字段折叠并显示为 More Fields。
-
单击EventHierarchy 前面的箭头。
-
单击更多字段前面的箭头。
将显示 EventHierarchy 下的字段。Medals 表中的所有字段都将显示在 More Fields 下。
正如您所看到的,您添加到层次结构的三个字段也显示在带有复选框的更多字段下。如果您不希望它们出现在“更多字段”下的“数据透视表字段”列表中,则必须隐藏数据表中的列 – Power Pivot 窗口中数据视图中的奖牌。您可以随时取消隐藏它们。
将字段添加到数据透视表如下 –
-
将EventHierarchy 拖到ROWS 区域。
-
将 Medal 拖到 ∑ VALUES 区域。
Sport 字段的值出现在数据透视表中,前面有一个 + 号。显示每项运动的奖牌数。
-
单击 Aquatics 前的 + 号。将显示 Aquatics 下的 DisciplineID 字段值。
-
单击出现的子 D22。将显示 D22 下的事件字段值。
正如您所观察到的,奖牌数是为事件提供的,在父级别 – DisciplineID汇总,在父级别 – Sport 进一步汇总。
创建基于多个表的层次结构
假设您想在数据透视表中显示学科而不是学科 ID,以使其摘要更具可读性和可理解性。为了做到这一点,您需要在奖牌表中拥有领域纪律,正如您所知,这不是。学科字段位于学科数据表中,但您不能使用来自多个表的字段创建层次结构。但是,有一种方法可以从另一个表中获取所需的字段。
如您所知,表 – 奖牌和纪律是相关的。通过使用与 DAX 的关系创建列,您可以将字段 Discipline 从 Disciplines 表添加到 Medals 表。
-
单击 Power Pivot 窗口中的数据视图。
-
单击功能区上的设计选项卡。
-
单击添加。
突出显示了表格右侧的列 – 添加列。
在公式栏中键入 = RELATED (Disciplines [Discipline])。创建一个新列 – CalculatedColumn1,其值作为 Disciplines 表中的 Discipline 字段值。
将 Medals 表中由此获得的新列重命名为 Discipline。接下来,您必须从 Hierarchy 中删除 DisciplineID 并添加 Discipline,您将在以下部分中学习。
从层次结构中删除子级别
如您所见,层次结构仅在图表视图中可见,而在数据视图中不可见。因此,您只能在图表视图中编辑层次结构。
-
单击 Power Pivot 窗口中的图表视图。
-
右键单击 EventHierarchy 中的 DisciplineID。
-
从下拉列表中选择从层次结构中删除。
出现确认对话框。单击从层次结构中删除。
字段 DisciplineID 从层次结构中删除。请记住,您已从层次结构中删除该字段,但源字段仍存在于数据表中。
接下来,您需要将 Discipline 字段添加到 EventHierarchy。
将子级别添加到层次结构
您可以将领域纪律添加到现有的层次结构 – EventHierarchy 如下 –
-
单击奖牌表中的字段。
-
将其拖到 EventHierarchy 下方的 Events 字段中。
Discipline 字段被添加到 EventHierarchy 中。
如您所见,EventHierarchy 中字段的顺序是 Sport–Event–Discipline。但是,正如您所知,它必须是运动-纪律-事件。因此,您需要更改字段的顺序。
更改层次结构中子级别的顺序
要将领域纪律移动到领域运动之后的位置,请执行以下操作 –
-
右键单击 EventHierarchy 中的 Discipline 字段。
-
从下拉列表中选择上移。
字段的顺序更改为 Sport-Discipline-Event。
具有层次结构变化的数据透视表
要查看您在数据透视表中的 EventHierarchy 中所做的更改,您无需创建新的数据透视表。您可以在现有数据透视表本身中查看它们。
在 Excel 窗口中单击带有数据透视表的工作表。
如您所见,在数据透视表字段列表中,事件层次结构中的子级别反映了您在数据模型层次结构中所做的更改。同样的变化也相应地反映在数据透视表中。
单击数据透视表中 Aquatics 前面的 + 号。子级别显示为字段 Discipline 的值。
隐藏和显示层次结构
您可以选择隐藏层次结构并随时显示它们。
-
取消选中图表视图顶部菜单中的框层次结构以隐藏层次结构。
-
选中 Hierarchies 框以显示层次结构。
以其他方式创建层次结构
除了您在前面部分中创建层次结构的方式之外,您还可以通过另外两种方式创建层次结构。
1. 在图表视图中单击 Medals 数据表右上角的 Create Hierarchy 按钮。
在表中创建了一个新的层次结构,其中没有任何字段。
按顺序将字段 Year 和 Season 拖到新层次结构中。层次结构显示子级别。
2. 另一种创建相同层次结构的方法如下 –
-
右键单击图表视图中奖牌数据表中的字段年份。
-
从下拉列表中选择创建层次结构。
在表中创建了一个新的层次结构,其中 Year 作为子字段。
将田地季节拖到层次结构中。层次结构显示子级别。
删除层次结构
您可以从数据模型中删除层次结构,如下所示 –
-
右键单击层次结构。
-
从下拉列表中选择删除。
在确认对话框。单击从模型中删除。
层次结构被删除。
使用层次结构的计算
您可以使用层次结构创建计算。在 EventsHierarchy 中,您可以将子级别的奖牌数量显示为其父级别的奖牌数量的百分比,如下所示 –
-
右键单击事件的奖牌计数值。
-
从下拉列表中选择值字段设置。
出现值字段设置对话框。
-
单击将值显示为选项卡。
-
从列表中选择 % of Parent Row Total,然后单击确定。
子级别显示为父总计的百分比。您可以通过对父级的子级的百分比值求和来验证这一点。总和将为 100%。
向上钻取和向下钻取层次结构
您可以使用快速浏览工具快速向上和向下钻取层次结构中的各个级别。
-
单击数据透视表中事件字段的值。
-
单击快速浏览工具 –出现在包含所选值的单元格的右下角。
显示带有向上钻取选项的浏览框。这是因为从 Event 您只能向上钻取,因为它下面没有子级别。
单击向上钻取。
数据透视表数据向上钻取到学科。
单击快速浏览工具 –出现在包含值的单元格的右下角。
显示浏览框并显示向上钻取和向下钻取选项。这是因为您可以从 Discipline 上钻到 Sport 或下钻到 Event。
通过这种方式,您可以快速上下移动层次结构。