如何编写DAX度量值获取各供应商运输跟踪率最优周及对应数值
DAX 实现供应商最高跟踪率周次方案
完全无需提前通过Power Query生成供应商与周次的笛卡尔积表,直接基于你已有的DT_Tracking表和已定义的度量值,新增2个度量值即可实现需求。
你已定义的度量值可直接复用,这里先修正ratio的标准写法(避免语法错误):
trips = COUNT(DT_Tracking[Supplier])tracked_trips = CALCULATE(COUNT(DT_Tracking[Tracked]), NOT(DT_Tracking[Tracked] = "")) + 0ratio = DIVIDE(tracked_trips, trips)
1. 定义「供应商最高周跟踪率」度量
供应商最高周跟踪率 = MAXX( VALUES(DT_Tracking[周次]), [ratio] )
逻辑说明:迭代当前筛选上下文对应供应商的所有周次,逐周计算跟踪率后取最大值。
2. 定义「最高跟踪率对应周次」度量
最高跟踪率对应周次 = VAR 最高跟踪率 = [供应商最高周跟踪率] RETURN CONCATENATEX( TOPN(1, VALUES(DT_Tracking[周次]), [ratio], DESC), DT_Tracking[周次], "," )
逻辑说明:筛选出当前供应商跟踪率最高的1个周次,若存在多个周次跟踪率并列最高,会用逗号拼接所有符合条件的周次。
使用方式
直接在可视化中拖入供应商字段、「供应商最高周跟踪率」度量、「最高跟踪率对应周次」度量即可,计算逻辑会自动适配筛选器上下文,性能远高于预生成物理表的方案。
提示:如果你的周次字段为日期类型,可在返回周次的位置套FORMAT函数转换为
YYYYWW格式,示例:FORMAT(DT_Tracking[周次], "YYYYWW")
内容的提问来源于stack exchange,提问作者Adrian Fischer
相关产品推荐
相关产品推荐

