Excel Power Pivot - 层次结构



数据模型中的层次结构是在数据表中嵌套列的列表,在 Power Pivot 表中使用时,这些列被视为单个项目。例如,如果数据表中包含国家、省份、城市列,则可以定义层次结构将这三列组合成一个字段。

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

考虑本章插图的以下数据模型。

Hierarchies

创建层次结构

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

  • 按顺序单击数据表 Medal 中的列 - 运动项目、项目 ID 和赛事。请记住,顺序对于创建有意义的层次结构非常重要。

  • 右键单击所选内容。

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

Create Hierarchies

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

Hierarchy Field

重命名层次结构

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

  • 右键单击 Hierarchy1。

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

Renaming Hierarchy

键入EventHierarchy

Event Hierarchy

使用数据模型中的层次结构创建数据透视表

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

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

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

Hierarchy in Data Model

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

Select New Worksheet and Click Ok

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

PivotTable Empty

在“数据透视表字段”列表中,EventHierarchy显示为 Medals 表中的一个字段。Medals 表中的其他字段已折叠并显示为“更多字段”。

  • 单击EventHierarchy前面的箭头箭头

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

将显示 EventHierarchy 下的字段。Medals 表中的所有字段都将显示在“更多字段”下。

Under EventHierarchy

您可以看到,添加到层次结构的三个字段也显示在更多字段下,并带有复选框。如果您不希望它们显示在更多字段下的“数据透视表字段”列表中,则必须在 Power Pivot 窗口的数据视图中隐藏数据表 – Medals 中的列。您可以随时取消隐藏它们。

按如下方式将字段添加到数据透视表:

  • EventHierarchy拖到“行”区域。

  • 将奖牌拖到“∑ 值”区域。

Drag EventHierarchy

运动项目字段的值将显示在数据透视表中,其前面带有 + 号。将显示每种运动项目的奖牌数量。

  • 单击水上运动项目前面的 + 号。将显示水上运动项目下的“项目 ID”字段值。

  • 单击出现的子项 D22。“赛事”字段值将显示在 D22 下。

DisciplineID

您可以看到,给出了赛事的奖牌数量,这些数量在其父级 -项目 ID处累加,然后在其父级 - 运动项目处进一步累加。

基于多个表创建层次结构

假设您希望在数据透视表中显示项目而不是项目 ID,以使其更易于阅读和理解。为此,您需要在 Medals 表中拥有项目字段,但您知道它不存在。项目字段位于项目数据表中,但您无法使用多个表中的字段创建层次结构。但是,有一种方法可以从其他表中获取所需的字段。

您知道,表 - Medals 和项目是相关的。您可以通过使用 DAX 创建列,将项目数据表中的项目字段添加到 Medals 表中。

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

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

  • 单击“添加”。

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

在公式栏中键入 = RELATED (Disciplines [Discipline])。将创建一个新列 - CalculatedColumn1,其值为项目数据表中的项目字段值。

Discipline Field

将 Medals 表中获得的新列重命名为项目。接下来,您必须从层次结构中删除项目 ID 并添加项目,这将在以下部分中学习。

从层次结构中删除子级

您可以看到,层次结构仅在图表视图中可见,而不是在数据视图中可见。因此,您只能在图表视图中编辑层次结构。

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

  • 右键单击 EventHierarchy 中的项目 ID。

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

Remove from Hierarchy

将出现“确认”对话框。单击从层次结构中移除

Confirm dialog box

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

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

向层次结构添加子级

您可以按如下方式将项目字段添加到现有层次结构 - EventHierarchy:

  • 单击 Medals 表中的字段。

  • 将其拖到 EventHierarchy 中的赛事字段下方。

Adding Child Level

项目字段将添加到 EventHierarchy。

Field Added

您可以看到,EventHierarchy 中的字段顺序为运动项目-赛事-项目。但是,您知道它应该是运动项目-项目-赛事。因此,您需要更改字段的顺序。

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

要将项目字段移动到运动项目字段之后,请执行以下操作:

  • 右键单击 EventHierarchy 中的项目字段。

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

Order of Child Level

字段顺序将更改为运动项目-项目-赛事。

Fields Order

层次结构更改后的数据透视表

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

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

Click on Worksheet

您可以看到,在“数据透视表字段”列表中,EventHierarchy 中的子级反映了您在数据模型中对层次结构所做的更改。这些更改也会相应地反映在数据透视表中。

单击数据透视表中水上运动项目前面的 + 号。子级将显示为项目字段的值。

Fields List

隐藏和显示层次结构

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

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

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

Hiding and Showing Hierarchy

以其他方式创建层次结构

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

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

Create Hierarchy

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

New Hierarchy in Table

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

Fields Year

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

  • 右键单击图表视图中 Medals 数据表中的年份字段。

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

Same Hierarchy

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

Child Field

将季节字段拖到层次结构中。层次结构将显示子级。

Field Season

删除层次结构

您可以按如下方式从数据模型中删除层次结构:

  • 右键单击层次结构。

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

Deleting Hierarchy

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

Delete From Model

层次结构将被删除。

Hierarchy Deleted

使用层次结构进行计算

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

  • 右键单击赛事的“奖牌计数”值。

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

Calculations Using Hierarchy

将出现“值字段设置”对话框。

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

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

Field Settings

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

Parent Totals

向上和向下钻取层次结构

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

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

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

Drilling Up

显示包含向上钻取的探索框选项。这是因为从“事件”级别只能向上钻取,因为它下面没有子级别。

单击向上钻取

Click Drill Up

数据透视表数据向上钻取到“学科”级别。

Drilled Up

单击单元格值右下角出现的快速探索工具 - 探索工具

显示包含向上钻取和向下钻取选项的探索框。这是因为从“学科”级别,您可以向上钻取到“运动”级别,或向下钻取到“事件”级别。

Explore Box

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

广告