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

如何在Power BI中向下填充度量值'Last Games Attendance'

实现Power BI中自动向下填充的"Last Games Attendance"列

背景说明

现有Date表,其中Attendance列包含数值与零值(零值表示场地关闭)。此前已实现计算列获取上一次有考勤的数值,但仅在Attendance非零的行显示结果,零值行返回空白。现需调整逻辑,实现自动向下填充最近的有效考勤值,达到指定表格效果。

原计算列代码(仅作参考)

Last Game Attendance Number = 
VAR CurrentDate = 'Date'[Date]
VAR LastAttendanceDate = 
    MAXX(
        FILTER(
            'Date',
            'Date'[Date] < CurrentDate && 'Date'[Attendance] > 0
        ),
        'Date'[Date]
    )
RETURN
    IF(
        'Date'[Attendance] = 0,
        BLANK(),
        LOOKUPVALUE('Date'[Attendance], 'Date'[Date], LastAttendanceDate)
    )

新需求对应的DAX计算列代码

Last Games Attendance = 
VAR CurrentDate = 'Date'[Date]
-- 筛选当前日期之前所有有有效考勤的记录
VAR PreviousValidAttendances = FILTER('Date', 'Date'[Date] < CurrentDate && 'Date'[Attendance] > 0)
RETURN
    -- 若无前序有效考勤,返回0;否则取最近一次的考勤值
    IF(
        COUNTROWS(PreviousValidAttendances) = 0,
        0,
        MAXX(TOPN(1, PreviousValidAttendances, 'Date'[Date], DESC), 'Date'[Attendance])
    )

代码逻辑说明

  • 定义CurrentDate变量存储当前行的日期;
  • 筛选出当前日期之前所有Attendance大于0的有效记录;
  • 若不存在前序有效考勤记录(如第一个有考勤的日期或其之前的零值行),返回0;
  • 若存在前序有效记录,取其中日期最近的一条记录的Attendance值,实现自动向下填充效果。

验证效果

生成的表格将与期望效果一致:

DateAttendanceLast Games Attendance
06/01/2400
07/01/24523140
08/01/24052314
09/01/24052314
10/01/241689552314
11/01/24016895
12/01/24016895
13/01/244853616895
14/01/247823648536
15/01/241224778236
16/01/24078236
17/01/245231412247

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:57:48