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

Power BI中实现上一次有效出勤数据展示的计算列问询

解决方案:Power BI中获取上一次非0出勤数据的DAX计算列

问题分析

你的原DAX代码仅取当前日期前一天的出勤数据,未考虑前一天可能是场馆关闭(值为0)的情况;之前的优化建议未正确筛选出最近的非0出勤日期,导致返回错误数据(如13/01/24的结果偏差)。

正确DAX计算列代码

PreviousAttendance = 
VAR CurrentDate = 'Date'[Date]
VAR CurrentAttendance = 'Date'[Attendance]
-- 筛选当前日期之前所有出勤不为0的记录
VAR NonZeroHistory = FILTER(ALL('Date'), 'Date'[Date] < CurrentDate && 'Date'[Attendance] <> 0)
-- 找到最近的非0出勤日期
VAR LatestValidDate = MAXX(NonZeroHistory, 'Date'[Date])
RETURN
IF(
    CurrentAttendance = 0,
    "Site Closed",
    -- 获取最近非0日期对应的出勤数据
    CALCULATE(MAX('Date'[Attendance]), 'Date'[Date] = LatestValidDate)
)

代码逻辑说明

  1. 定义变量:先存储当前行的日期和出勤值,简化后续逻辑编写。
  2. 筛选有效历史记录:从全表中过滤出当前日期之前、出勤不为0的所有行,排除场馆关闭的日期。
  3. 定位最近有效日期:用MAXX找出筛选结果中最新的日期,确保取到的是上一次比赛日的记录。
  4. 返回结果:如果当前行出勤为0,直接返回"Site Closed";否则根据最近有效日期取出对应出勤数据。

注意事项

  • 确保'Date'[Date]列是标准日期类型,且无重复日期(若有重复,MAX('Date'[Attendance])会取该日期的最大出勤值,可根据需求替换为SUM或MIN)。
  • 若你的日期表包含时间部分,需确保'Date'[Date]仅保留日期维度,避免时间干扰筛选逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:32:20