Power BI用切片器选中值编写度量值实现动态产品标签统计
DAX实现动态阈值的产品标签统计方案
前置操作
在编写度量值前先创建2张无关联独立表,不要和现有的DF表建立任何关系:
- 阈值切片表:命名为
SlicerTable,仅包含1列Values,手动录入固定阈值:100、150、200、250,后续将该字段拖入切片器供用户选择 - 标签维度表:命名为
LabelDim,仅包含1列Label,手动录入3个固定标签值:- No Date available
- No Orders required
- Orders Required
后续将该字段拖入表格/矩阵的行区域,作为标签分组依据
核心度量值代码
新建如下DAX度量值,即可实现动态统计:
Distinct Product Count = VAR SelectedThreshold = SELECTEDVALUE(SlicerTable[Values], 100) // 未选择阈值时默认取100,可按需修改默认值 VAR CurrentRowLabel = SELECTEDVALUE(LabelDim[Label]) RETURN SWITCH( TRUE(), // 统计无有效期数据的产品数 CurrentRowLabel = "No Date available", CALCULATE( DISTINCTCOUNT('DF'[Product]), ISBLANK('DF'[Days until Expiry date]) ), // 统计无需下单的产品数 CurrentRowLabel = "No Orders required", CALCULATE( DISTINCTCOUNT('DF'[Product]), NOT(ISBLANK('DF'[Days until Expiry date])), 'DF'[Days until Expiry date] >= SelectedThreshold ), // 统计需要下单的产品数 CurrentRowLabel = "Orders Required", CALCULATE( DISTINCTCOUNT('DF'[Product]), NOT(ISBLANK('DF'[Days until Expiry date])), 'DF'[Days until Expiry date] < SelectedThreshold ), // 总计行返回全量产品非重复计数 DISTINCTCOUNT('DF'[Product]) )
可视化配置
- 将
SlicerTable[Values]拖入切片器组件,建议设置为单选模式,避免多值选中导致判定逻辑异常 - 将
LabelDim[Label]拖入表格/矩阵的行字段,将上述编写的Distinct Product Count度量值拖入值字段,即可实现阈值切换时标签统计结果自动更新
注:计算列在数据刷新时就会固定计算结果,无法响应切片器的实时交互选择,因此这类动态规则的统计必须通过度量值实现,上述方案是Power BI中动态分段统计的标准实现方式。
内容的提问来源于stack exchange,提问作者PythonBeginner
相关产品推荐
相关产品推荐

