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

Power BI中用DAX列按组筛选符合条件的最新记录

解决Power BI中DAX列标记符合条件的最新更新记录问题

先明确你要实现的核心逻辑:按Id分组,根据组内删除记录的状态和顺序标记目标行。下面是能覆盖所有规则的DAX列代码:

Result = 
VAR CurrentId = 'Table'[Id]
-- 获取当前Id组的所有记录
VAR GroupRecords = CALCULATETABLE('Table', ALLEXCEPT('Table', 'Table'[Id]))
-- 获取组内最后一条记录的Deleted状态
VAR LastDeletedStatus = MAXX(TOPN(1, GroupRecords, 'Table'[Modified On], DESC), 'Table'[Deleted])
-- 检查组内是否存在Deleted=True的记录
VAR HasDeleted = COUNTROWS(FILTER(GroupRecords, 'Table'[Deleted] = TRUE())) > 0
-- 获取组内最后一条Deleted=False的记录的Modified On时间
VAR LastNonDeletedTime = MAXX(FILTER(GroupRecords, 'Table'[Deleted] = FALSE()), 'Table'[Modified On])
-- 获取组内第一条记录的Modified On时间(当全是Deleted=True时用)
VAR FirstRecordTime = MINX(GroupRecords, 'Table'[Modified On])

RETURN
IF(
    -- 规则2:无删除操作,返回空
    HasDeleted = FALSE(),
    BLANK(),
    IF(
        -- 规则4:最后一条不是删除,返回空
        LastDeletedStatus = FALSE(),
        BLANK(),
        IF(
            -- 规则1:存在未删除记录,当前行是最后一条未删除的
            NOT ISBLANK(LastNonDeletedTime) && 'Table'[Modified On] = LastNonDeletedTime,
            TRUE(),
            -- 规则3:无未删除记录,当前行是第一条记录
            ISBLANK(LastNonDeletedTime) && 'Table'[Modified On] = FirstRecordTime,
            TRUE()
        )
    )
)

代码逻辑拆解

  1. 变量定义:

    • CurrentId:锁定当前行的分组Id
    • GroupRecords:获取当前Id下的所有记录,用于后续组内计算
    • LastDeletedStatus:取组内最新(Modified On降序第一条)记录的Deleted状态
    • HasDeleted:判断组内是否有过删除操作
    • LastNonDeletedTime:找到组内最后一条未删除记录的时间戳
    • FirstRecordTime:组内最早记录的时间戳,用于全是删除记录的情况
  2. 规则匹配:

    • 先判断规则2:组内无删除操作,直接返回空
    • 再判断规则4:组内最后一条不是删除,返回空
    • 接着处理规则1:如果存在未删除记录,当前行的时间等于最后一条未删除的时间,标记为True
    • 最后处理规则3:如果组内全是删除记录,当前行是第一条记录,标记为True

注意事项

  • 确保Modified On是日期时间类型,能准确排序;如果用Count列(按Modified On升序生成的次数),可以把代码里的'Table'[Modified On]替换成'Table'[Count],逻辑一致
  • 测试时可以针对每个Id的场景验证:比如Id=3(全删除记录)、Id=1(最后删除且有未删除记录)、Id=2(最后未删除)、Id=4(无删除)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:15:39