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