Power BI Measure修改请求:筛选特定日期前且后续无订单的客户订单
Power BI 度量值修改方案
问题背景
有两张表:
SalesTable:包含客户、订单日期(SalesDate)字段Calendar:用CALENDARAUTO()生成的日期表,通过切片器控制日期范围
需要创建一个度量值,对同时满足以下两个条件的订单赋值1:
- 订单日期早于切片器控制的
MIN(Calendar[Date]) - 该客户在上述日期之后没有任何其他订单
当前使用的度量值仅筛选了日期在切片器范围外的订单,未排除后续仍有订单的客户,现有代码:
Measure = IF( SELECTEDVALUE('SalesTable'[SalesDate])<MIN(Calendar[Date])|| SELECTEDVALUE('SalesTabl'[SalesDate])>MAX(Calendar[Date]), 1,0 )
修改后的度量值
Qualified Orders = VAR SelectedMinDate = MIN(Calendar[Date]) VAR CurrentCustomer = SELECTEDVALUE(SalesTable[CustomerID]) -- 获取当前客户所有订单的最晚日期,不受当前筛选影响 VAR MaxOrderDateOfCustomer = CALCULATE(MAX(SalesTable[SalesDate]), ALL(SalesTable), SalesTable[CustomerID] = CurrentCustomer) RETURN IF( -- 同时满足两个条件:订单日期早于筛选起始日,且客户无后续订单 SELECTEDVALUE(SalesTable[SalesDate]) < SelectedMinDate && MaxOrderDateOfCustomer < SelectedMinDate, 1, 0 )
逻辑说明
SelectedMinDate:提取切片器控制的最小日期,作为判断的时间节点CurrentCustomer:获取当前行对应的客户IDMaxOrderDateOfCustomer:通过ALL(SalesTable)清除当前页面的筛选上下文,确保能拿到该客户所有订单中的最晚日期- 最终判断:只有当订单日期早于筛选起始日,且该客户的所有订单都不晚于这个起始日时,才返回1,否则返回0
内容的提问来源于stack exchange,提问作者Calle
相关产品推荐
相关产品推荐

