如何通过钻取查看DAX计算度量值对应的明细数据?
实现库存回运地点的明细钻取方案
方法一:DAX度量值+Power BI交互钻取
1. 标记符合条件的运单
创建DAX度量值,识别涉及「既是始发地又是目的地」的运单:
符合条件的运单 = VAR 双向地点 = FILTER( ALL('订单明细'[始发地]), COUNTROWS(FILTER(ALL('订单明细'), '订单明细'[目的地] = EARLIER('订单明细'[始发地]))) > 0 ) VAR 当前始发地点 = VALUES('订单明细'[始发地]) VAR 当前目的地点 = VALUES('订单明细'[目的地]) RETURN IF( OR( COUNTROWS(INTERSECT(当前始发地点, 双向地点)) > 0, COUNTROWS(INTERSECT(当前目的地点, 双向地点)) > 0 ), 1, 0 )
2. 修正地点统计度量值
确保「存在进出库的地点数」准确计算双向地点数量:
存在进出库的地点数 = VAR 双向始发地 = FILTER( DISTINCT('订单明细'[始发地]), COUNTROWS(FILTER('订单明细', '订单明细'[目的地] = EARLIER('订单明细'[始发地]))) > 0 ) RETURN COUNTROWS(双向始发地)
3. 配置钻取交互
- 开启矩阵视觉对象的钻取功能(在「格式」面板中启用钻取选项)
- 创建新的表格视觉对象,添加订单明细的所有字段(日期、零件编号、始发地、目的地、成本、数量)
- 在表格的「筛选器」面板中,添加「符合条件的运单」度量值,设置筛选条件为等于1
- 完成后,点击矩阵中「存在进出库的地点数」的数值
2,表格将自动显示对应明细
方法二:Power Query预处理筛选表
通过Power Query提前筛选符合条件的运单,简化交互逻辑:
1. 提取双向地点
在Power Query编辑器中新建查询,获取所有既是始发地又是目的地的地点:
let 源 = 订单明细, 始发地集合 = Table.Distinct(Table.SelectColumns(源, {"始发地"})), 目的地集合 = Table.Distinct(Table.SelectColumns(源, {"目的地"})), 双向地点 = Table.Intersect({始发地集合, 目的地集合}), 重命名列 = Table.RenameColumns(双向地点, {{"始发地", "地点"}}) in 重命名列
2. 筛选目标运单
复制原订单明细表,进行合并与筛选:
- 将复制表与「双向地点」查询合并,分别以「始发地」「目的地」匹配「地点」
- 添加自定义列:
if [始发地_地点] <> null or [目的地_地点] <> null then 1 else 0 - 筛选该自定义列为
1的行,删除多余合并辅助列 - 将处理后的表命名为「双向地点运单」并加载到数据模型
3. 配置交互
- 矩阵视觉对象使用原订单明细表的度量值
- 表格视觉对象使用「双向地点运单」表的字段
- 开启矩阵的钻取功能,点击数值即可查看预处理后的明细
内容的提问来源于stack exchange,提问作者onlywynter
相关产品推荐
相关产品推荐

