我正在努力找出正确的 Excel 数据模型关系技术,以通过两步过程将切片器链接到数据透视表。
这是我的简单 Excel 要下载的文件。
我的示例数据中有三个字段:人员、活动和成本。我希望用户能够在活动切片器中选择一个活动(或多个活动),然后显示执行该活动的任何人员的完整成本和活动数据。以下是数据表 (1.) 及其完整数据透视表 (2.) 的屏幕截图。我想要的输出在(3.)中进行了模拟。它基本上是 (2.) 的子集。复杂的是,我想显示该人员的完整记录(即所有活动),而不仅仅是用户在切片器中选择的活动。因此,存在切片器活动 -> 人员 -> 每人所有活动/
的关系我可以轻松地将流程分解为一些简单的联接和关系,但我不确定如何在 Power Pivot 或 Power Query 中实现以下内容。每当切片器更新时,它都必须更新最终表(步骤 4)。我只是不确定如何从活动切片器桥接到人员表,然后从人员表连接回源数据。
这可以简单地在 Power Pivot 中完成吗?
您将需要使用 Excel 中的数据模型和度量来实现此目的。以下是步骤概述,然后是详细信息。
步骤如下:
1。将表加载到 PowerQuery
Table 1
并将其重命名为 Activity
。Activity
(再次在左侧)并选择 Reference
。这将基于第一个查询(表)创建一个新查询(表)。Activity Slicer
。Activity Slicer
中,右键单击 Activity
列标题并选择 Remove other columns
。Remove Duplicates
。Activity
(与电子表格中相同); 2. Activity Slicer
- 具有不同值的单列 Activity
。Close & Load
上的向下箭头,然后选择 Close & Load To...
Import Data
窗口中,选择 Only Create Connection
,然后在底部选择(选中)Add this data to the Data Model
。2。在数据模型中创建度量
Manage
(第一个,其下方有数据模型)。Activity
选项卡,然后选择计算区域中的任意单元格。如果计算区域不可见,请在功能区中选择它。Total Cost:=
var persons = CALCULATETABLE(
VALUES(Activity[Person]),
FILTER(ALL('Activity'), CONTAINS('Activity Slicer', [Activity], 'Activity'[Activity]))
)
var result = CALCULATE(
SUM('Activity'[Cost £k]),
FILTER(Activity, 'Activity'[Person] IN persons )
)
RETURN result
就是这样 - 不需要任何关系。关闭 Power Pivot 窗口并返回主 Excel。
3.创建/添加枢轴和切片器
From Data Model
。
Insert Slicer
。选择 All
选项卡,您应该会看到数据模型中的表。选择Activity Slicer > Activity
就是这样 - 测试!