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

DAX实现按分组获取最新记录:计数列或标记列

在DAX中按分组生成指定列的两种实现方法

实现方式1:组内按时间顺序生成递增计数(最新时间计数最大)

使用RANKX函数在分组内对时间列进行排名,让最新的时间获得最大的计数值:

Column C = 
VAR CurrentGroup = 'Table'[Column A]
VAR CurrentTime = 'Table'[Column B]
RETURN
RANKX(
    FILTER('Table', 'Table'[Column A] = CurrentGroup),
    'Table'[Column B],
    CurrentTime,
    ASC,  -- 按时间升序排名,最早时间得1,最新时间得最大数
    DENSE -- 若存在相同时间,排名相同;需唯一排名可替换为SKIP
)
  • FILTER('Table', 'Table'[Column A] = CurrentGroup):限定当前计算仅在当前Column A的分组内进行
  • ASC参数指定按时间升序排序,确保最新的时间对应最大的计数值
  • DENSE参数处理重复时间的场景,避免排名出现跳号;如果需要每条记录排名唯一,改用SKIP即可

实现方式2:仅标记组内最新时间的记录为True

通过计算分组内的最大时间,匹配当前行时间来生成标记列:

Column C = 
VAR CurrentGroup = 'Table'[Column A]
VAR MaxTimeInGroup = CALCULATE(MAX('Table'[Column B]), ALLEXCEPT('Table', 'Table'[Column A]))
RETURN
IF('Table'[Column B] = MaxTimeInGroup, TRUE(), BLANK())
  • ALLEXCEPT('Table', 'Table'[Column A]):清除除Column A外的所有筛选上下文,确保计算的是当前分组内的最大时间
  • 当当前行的Column B等于分组内最大时间时返回TRUE(),其余情况返回空值BLANK()

内容的提问来源于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 03:55:11