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