层次结构是一种可查看的列表,您作为子级创建的列的集合可按任何顺序放置于层次结构中。 层次结构可与报表客户端工具中的其他列单独出现,以便客户端用户选择和导航数据的公共路径。
表可以包括几十甚至数百个具有复杂列名称的列。 因此,客户端用户可能会在报表中查找和包括数据时遇到困难。 客户端用户可以通过一下单击就将整个层次结构(由多个列构成)添加到报表中。 层次结构还可以提供数据结构的简单、直观的视图。 例如,在日期表中,您可以创建日历层次结构。 日历年用作最顶层的父级,月、周和日作为子级包括(日历年->月->周->日)。 此层次结构显示了从日历年到日的逻辑关系。
层次结构可包括在透视中。 透视定义某一模型的可查看子集,借此您可以将注意力集中在该模型中的特定业务或特定应用上。 例如,透视可以向用户提供仅由满足其特定报表要求所需的数据项构成的层次结构。 有关详细信息,请参阅PowerPivot 中的透视。
您可以从关系图视图中创建、编辑和删除层次结构。 有关关系图视图的详细信息,请参阅PowerPivot 窗口:关系图视图。 您还可以在 PowerPivot 和 Excel 字段列表中查看层次结构。 (如果您在使用 SQL Server Data Tools (SSDT),则单击**“模型”菜单,然后单击“在 Excel 中分析”**。)本主题包含以下各节:
创建层次结构
编辑层次结构
删除层次结构
字段列表中的层次结构
创建层次结构
您可以通过使用列和表上下文菜单,或者通过使用关系图视图中表头上的**“创建层次结构”**按钮,创建层次结构。 创建层次结构时,一个新的父级别将与您作为子节点选择的级别一起出现。 在您创建层次结构时,在您的模型中创建一个新对象。 您不要将列移到层次结构中;您创建附加对象。 单个列可以添加到多个层次结构中。
![]() |
---|
您可以从隐藏的列(从客户端工具中隐藏的列)创建层次结构。 |
如果您知道要将哪些列作为层次结构中的子级别创建,则可以使用上下文菜单中的“创建层次结构”命令来多选这些列并且快速创建具有多个子级别的层次结构。
从上下文菜单创建层次结构
在处于关系图视图中时,选择表中的一列或多列。
若要打开上下文菜单,请右键单击所选列之一。 如果您想要仅从一列创建一个层次结构,则可以右键单击该列并且无需首先选择它。
单击**“创建层次结构”**。 一个父层次结构级别将在表的底部创建,并且所选列将作为子级别复制到该层次结构的下方。
为您的新层次结构键入名称。
然后,您可以将更多列拖入您的层次结构的父级别中,这将从这些列创建子级别并且将这些级别放置于层次结构的底部。
或者,如果您希望某一列位于层次结构列表的特定位置,则可以拖动列以便创建和放置您希望其出现在层次结构中的子级别。
在您使用多选来创建层次结构时,最初将基于列的基数自动组织子级别的顺序。 最高的基数最先列出,其中,值是最具独特性且是唯一的,例如标识号和姓名;最低的基数最后列出,其中,值更为常见,例如状态、布尔值或常见分类。 但是,添加附加列会将子级别置于列表的底部。 您可以拖动列以便更改顺序。 有关更改子级别的顺序的更多方法,请参阅下面的编辑层次结构。
![]() |
---|
层次结构可以仅基于来自单个表内的列。 如果您多选其他对象类型(例如度量值或 KPI)以及一个或多个列,或者如果您从多个表中选择列,则在上下文菜单中将不提供“创建层次结构”命令。 若要从不同表中添加列,请使用 RELATED DAX 函数添加引用来自相关表的列的计算列。 有关详细信息,请参阅 RELATED 函数。 该函数使用以下语法: =RELATED(TableName[ColumnName]) |
如果您只具有一列想要作为层次结构的子级别创建,或者您不确保哪些列要作为子级别添加到您的层次结构中,则可以通过使用表头创建层次结构父级别。 然后,您可以将列作为子级别拖入到层次结构中,并且将它们添加到层次结构中的正确位置。
从表头中的按钮创建层次结构
单击表头中的**“创建层次结构”**按钮。 一个空的层次结构父级别将出现在该表的底部。
若要将列作为层次结构父级别之下的子级别创建,请将这些列拖入到层次结构中。
![]() |
---|
如果使用“创建层次结构”功能(从表头按钮或表的上下文菜单),您将始终创建一个空的层次结构。 您选择的所有列都将被忽略。 如果您选择了表中的一个或多个列,则这些列将不会添加到该层次结构的下方。 您必须将这些列拖到该层次结构中。 如果您想要选择多个列以便放置于某一层次结构中,请首先多选这些列,然后改用上下文菜单命令。 |
编辑层次结构
您可以重命名层次结构,重命名子级别,更改子级别的顺序,添加附加列作为子级别,从层次结构中删除子级别,显示子级别的源名称(列名),以及在子级别与层次结构父级别同名的情况下隐藏子级别。
更改层次结构或子级别的名称
右键单击层次结构父级别或子级别,然后单击**“重命名”**。
键入新名称或者编辑现有名称。
或者,双击父层次结构,然后编辑该名称。
更改层次结构中子级别的顺序
将子级别拖入到层次结构上的新位置中。
或者,右键单击层次结构的某一子级别,然后单击**“上移”以便在列表中上移该级别,或单击“下移”**以便在列表中下移该级别。
![]() |
---|
一次只能将一列添加到单个层次结构中。 在将某一列添加到某个层次结构中后,不能再次将其添加到相同层次结构中。 因此,您将无法将某一列拖到层次结构中,并且特定列的“添加到层次结构”上下文菜单将不再引用该列已添加到的层次结构。 如果没有某一列可添加到的其他层次结构,则“添加到层次结构”选项将不会在该菜单中出现。 |
向层次结构添加其他子级别
将一列拖到层次结构的父级别上。 该列将作为子级别复制到层次结构列表的底部。
或者,将列拖到层次结构中的特定位置。 该列将作为层次结构中的子级别复制。
或者,右键单击某一列或多个所选列,在上下文菜单中指向**“添加到层次结构”**,然后单击特定层次结构。 一个子级别将从列创建,并且添加到层次结构列表的底部。
![]() |
---|
您可以将隐藏的列(从客户端工具中隐藏的列)作为子级别添加到层次结构。 该子级别并不隐藏。 |
从层次结构中删除子级别
右键单击子级别,然后单击**“从层次结构中删除”**。
或者,单击层次结构中的某一子级别,然后按下 Delete 键。 如果您要取回该子级别,则必须再次添加该列。
![]() |
---|
如果您重命名某一层次结构子级别,则该子级别将不再与从其创建的列共享相同名称。 默认情况下,源列名称将出现在子级别的右侧。 如果您隐藏源列名称,则使用“显示源列名称”命令可以看到创建该子级别所基于的列。 |
隐藏或显示源名称
右键单击某一层次结构子级别,然后单击**“隐藏源列名称”或“显示源列名称”**可在这两个选项之间切换。
在您单击**“显示源列名称”**时,从其复制的列的名称将出现在子级别的右侧。
删除层次结构
删除层次结构及其子级别
右键单击父层次结构级别,然后单击**“删除”**。
或者,单击父层次结构级别,然后按 Delete 键。 这也会删除其所有子级别。
字段列表中的层次结构
层次结构以文件夹的形式出现在字段列表中。 您可以打开文件夹以便查看子级别。 若要编辑层次结构级别,请返回到关系图视图。