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

带日期切片器时如何获取每个客户的最大日期(Power BI DAX)

解决方案:按Name获取切片器日期范围内的最大日期

问题原因

你当前使用的公式CALCULATE(MAX(Orders[Date]), ALLEXCEPT(Orders,Orders[Name]))会清除Orders表上除Name外的所有筛选(包括切片器对Date列的筛选),因此无论切片器选择哪个日期,都会返回每个Name在整个数据集里的全局最大日期,不符合你需要的“切片器日期范围内的最大日期”需求。

可行DAX方案

根据切片器使用的数据源,提供两种解决方案:

方案1:切片器使用独立日期表(推荐)

如果你的切片器基于独立的日期表(如DateTable),使用以下公式:

Max Date per Name = 
VAR SelectedDate = MAX(DateTable[Date])
RETURN
CALCULATE(
    MAX(Orders[Date]),
    ALLEXCEPT(Orders, Orders[Name]),
    Orders[Date] <= SelectedDate
)

逻辑说明:

  1. 获取切片器选中的最大日期(未选时自动取日期表的全局最大日期)
  2. 针对每个Name,筛选出该Name下所有日期≤选中日期的记录,取其中的最大日期

方案2:切片器直接使用Orders表的Date列

如果没有独立日期表,直接用Orders[Date]做切片器,使用以下简洁公式:

Max Date per Name = 
CALCULATE(
    MAX(Orders[Date]),
    FILTER(
        ALLEXCEPT(Orders, Orders[Name]),
        Orders[Date] <= MAX(Orders[Date])
    )
)

逻辑说明:

  1. 保留Name的筛选上下文,清除其他筛选
  2. 筛选出该Name下日期不超过切片器选中最大日期的记录,取最大值;未选切片器时,自动取全局最大日期

验证结果

  • 未选择切片器时,返回每个Name的全局最大日期:
a  10/1/2023
b  8/28/2023
c  6/15/2023
  • 选择9/30/2023时,返回每个Name在该日期及之前的最大日期:
a  9/1/2023
b  8/28/2023
c  6/15/2023

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:53:32