You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI Measure修改请求:筛选特定日期前且后续无订单的客户订单

Power BI 度量值修改方案

问题背景

有两张表:

  • SalesTable:包含客户、订单日期(SalesDate)字段
  • Calendar:用CALENDARAUTO()生成的日期表,通过切片器控制日期范围

需要创建一个度量值,对同时满足以下两个条件的订单赋值1:

  1. 订单日期早于切片器控制的MIN(Calendar[Date])
  2. 该客户在上述日期之后没有任何其他订单

当前使用的度量值仅筛选了日期在切片器范围外的订单,未排除后续仍有订单的客户,现有代码:

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:获取当前行对应的客户ID
  • MaxOrderDateOfCustomer:通过ALL(SalesTable)清除当前页面的筛选上下文,确保能拿到该客户所有订单中的最晚日期
  • 最终判断:只有当订单日期早于筛选起始日,且该客户的所有订单都不晚于这个起始日时,才返回1,否则返回0

内容的提问来源于stack exchange,提问作者Calle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:25:21