如何使用measure度量值创建drill through钻取并展示钻取对应字段?
通过度量值实现钻取后自动展示触发字段方案
以下方案基于DAX语法,适用于Power BI等支持DAX度量值的BI工具:
核心实现逻辑
钻取操作的本质是将触发位置选中的字段筛选上下文传递到目标页面,我们可以通过判断哪个维度字段被筛选,来识别本次钻取的触发字段,再通过度量值输出对应信息。
具体实现步骤
1. 编写通用识别度量值
假设你可触发钻取的字段为产品类别、区域、销售渠道,可直接参考如下DAX代码创建度量值:
钻取触发字段信息 = SWITCH( TRUE(), ISFILTERED('公共维度表'[产品类别]), "触发字段:产品类别 | 选中值:" & SELECTEDVALUE('公共维度表'[产品类别]), ISFILTERED('公共维度表'[区域]), "触发字段:区域 | 选中值:" & SELECTEDVALUE('公共维度表'[区域]), ISFILTERED('公共维度表'[销售渠道]), "触发字段:销售渠道 | 选中值:" & SELECTEDVALUE('公共维度表'[销售渠道]), "未检测到有效钻取触发源" )
代码说明:
ISFILTERED函数用于判断指定字段是否处于被筛选状态,钻取触发时仅你点击的字段会被带入独立筛选上下文SELECTEDVALUE用于提取触发钻取时选中的字段值,若支持多选钻取,可替换为CONCATENATEX(VALUES('表名'[字段名]), [字段名], "、")- 新增钻取触发字段时,只需在
SWITCH结构中新增对应的判断分支即可
2. 目标页面配置
- 把所有可触发钻取的字段都添加到目标页面的「钻取字段」配置面板,钻取类型选择「用作类别」
- 在目标页面添加卡片视觉对象,绑定上面创建的
钻取触发字段信息度量值,即可自动展示每次钻取的触发字段和对应值 - 若要展示该触发字段对应的全部详情信息,直接在目标页面添加表格/矩阵视觉对象,拖入所需的详情字段即可,钻取传递的筛选上下文会自动过滤出对应数据,无需额外配置
常见问题调整
- 存在多字段同时被筛选的场景时,调整
SWITCH中判断分支的先后顺序,把高频触发的钻取字段放在前面即可 - 无需担心分支过多影响性能,DAX的
SWITCH判断为惰性计算,命中第一个符合条件的分支后就会停止后续判断
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

