如何用PowerPivot实现切片器筛选后展示人员全活动数据透视表?
实现步骤
1. 搭建数据模型
- 在PowerPivot中导入你的源数据表(含Person、Activity、Cost字段)。
- 新建两个独立维度表:
- Activity维度表:提取源数据中唯一的Activity值(可通过Power Query去重或PowerPivot的
DISTINCT函数创建)。 - Person维度表:提取源数据中唯一的Person值,同样用去重方式生成。
- Activity维度表:提取源数据中唯一的Activity值(可通过Power Query去重或PowerPivot的
- 建立表间关系:
Activity维度表[Activity]与源数据表[Activity]建立多对一单向关联。Person维度表[Person]与源数据表[Person]建立多对一单向关联。
2. 创建DAX度量值
在PowerPivot中新建用于标记目标人员的度量值:
显示标记 = IF( CALCULATE( COUNTROWS('源数据表'), ALLEXCEPT('源数据表', '源数据表'[Person]), '源数据表'[Activity] IN VALUES('Activity维度表'[Activity]) ) > 0, 1, 0 )
这个度量值的作用是:判断当前人员是否参与了切片器选中的活动,是则返回1,否则返回0。
3. 配置数据透视表
- 插入基于PowerPivot模型的数据透视表。
- 行区域依次拖入
Person维度表[Person]和源数据表[Activity];值区域拖入源数据表[Cost]。 - 将
显示标记度量值拖到筛选器区域,设置筛选条件为等于1。
4. 关联切片器
- 插入切片器,选择
Activity维度表[Activity]作为筛选字段。 - 此时在切片器中选择任意活动,透视表会自动展示所有参与该活动的人员的全部活动记录,而非仅选中的活动。
逻辑说明
通过独立维度表切断直接筛选关联,用DAX度量值反向判断人员是否符合切片器条件,再通过筛选器保留目标人员的完整数据,实现「切片器选活动→定位参与人员→展示人员全量活动」的需求。
内容的提问来源于stack exchange,提问作者JohnTdata
相关产品推荐
相关产品推荐

