咨询:Excel数据透视表切片器筛选后显示项目全量关联列的方法
实现需求的两种方案
一、原生数据透视表辅助列方案
不需要DAX,通过添加辅助标记列即可实现:
- 在源数据中新增一列(比如命名为「包含目标值」),输入公式:
=IF(COUNTIFS([项目],[@项目],[值],100)>0,"是","否")
该公式会标记出所有存在值为100的项目。 - 将数据导入数据透视表,把「项目」和「日期」拖到「行」区域,「值」拖到「值」区域;再把新增的「包含目标值」列拖到「筛选器」区域,选择「是」。
- 此时透视表会显示所有包含100的项目的全部日期及对应值,完全匹配你的期望结果。
二、DAX方案(适合Power Pivot场景)
如果用Power Pivot建模,可通过以下两种方式实现:
方法1:计算列标记+筛选
- 在Power Pivot的表中新建计算列:
该列会返回包含目标值 = CALCULATE( COUNTROWS('你的表名'), ALLEXCEPT('你的表名', '你的表名'[项目]), '你的表名'[值] = 100 ) > 0TRUE/FALSE,标记出存在值100的项目。 - 在数据透视表中,将「包含目标值」拖到筛选器,勾选
TRUE,再把「项目」「日期」拖到行区域,「值」拖到值区域即可。
方法2:度量值控制显示
创建一个度量值来动态判断并显示值:
显示目标项目值 = VAR 当前项目 = SELECTEDVALUE('你的表名'[项目]) VAR 项目含目标值 = CALCULATE( COUNTROWS('你的表名'), ALL('你的表名'[日期]), '你的表名'[项目] = 当前项目, '你的表名'[值] = 100 ) > 0 RETURN IF(项目含目标值, SELECTEDVALUE('你的表名'[值]), BLANK())
将这个度量值拖到透视表的「值」区域,「项目」「日期」拖到行区域,此时只有包含100的项目会显示所有日期对应的值,其他项目会显示空白(可通过透视表设置隐藏空白行)。
内容的提问来源于stack exchange,提问作者dgi
相关产品推荐
相关产品推荐

