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

Power BI中使用DAX度量值获取指定ID对应的最新值

解决方案

方案1:DAX度量值(仅返回最新Value,适合用在视觉对象中)

假设你的源表名为源数据表,新建度量值代码如下:

最新Value = 
VAR 当前ID = SELECTEDVALUE('源数据表'[Name_ID])
VAR 对应ID最大时间 = CALCULATE(MAX('源数据表'[DateTime]), ALL('源数据表'), '源数据表'[Name_ID] = 当前ID)
RETURN
CALCULATE(
    SELECTEDVALUE('源数据表'[Value]),
    ALL('源数据表'),
    '源数据表'[Name_ID] = 当前ID,
    '源数据表'[DateTime] = 对应ID最大时间
)

使用方法:将Name_ID、Name、DateTime字段拖入表格视觉对象的行维度,再添加这个度量值,最后在视觉筛选器中筛选Name_ID为6、32、48,就能得到你要的结果。

方案2:新建计算表(直接生成完整的结果表,可用于后续计算)

如果需要直接生成完整的结果表,可点击「建模」选项卡-「新建表」,粘贴以下代码:

父ID最新结果表 = 
// 定义你需要的父ID集合
VAR 指定父ID集合 = {6, 32, 48}
// 先过滤出目标ID的记录,再按ID分组取每个ID的最大时间
VAR 分组取最大时间 = GROUPBY(
    FILTER('源数据表', '源数据表'[Name_ID] IN 指定父ID集合),
    '源数据表'[Name_ID],
    "最新执行时间", MAXX(CURRENTGROUP(), '源数据表'[DateTime])
)
// 匹配对应时间的Name和Value字段
RETURN
ADDCOLUMNS(
    分组取最大时间,
    "Name", CALCULATE(SELECTEDVALUE('源数据表'[Name]), '源数据表'[DateTime] = EARLIER([最新执行时间])),
    "Value", CALCULATE(SELECTEDVALUE('源数据表'[Value]), '源数据表'[DateTime] = EARLIER([最新执行时间]))
)

注意事项

  • 请先确认你源表中的DateTime字段已经被Power BI识别为「日期/时间」类型,否则MAX函数无法正常计算最大时间
  • 如果存在同一个ID同一时间有多条记录的情况,可以把代码中的SELECTEDVALUE替换为LASTNONBLANK('源数据表'[对应字段], 1)处理极端场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:06:04