【问题标题】:Measure max datetime per Id in Dax在 Dax 中测量每个 ID 的最大日期时间
【发布时间】:2022-11-10 18:45:48
【问题描述】:

假设您有一个包含两列(“ID”、“DATETIME”)的表。 对于每个“ID”,有多个具有不同日期时间的行。 我想创建一个名为“IS_LAST”的第三列,它具有布尔数据类型。 对于每一行,我想用行中存在的“ID”过滤表,并想检查行中的“DATETIME”是否是最新的。如果是,则“IS_LAST”为 TRUE,否则为 FALSE。

我的暂定是:IF(COUNTROWS(FILTER(TABLE, TABLE[ID] = [ID] && TABLE[DATETIME] > [DATETIME]) = 0)), TRUE, FALSE)。但这为所有行提供了 TRUE。

【问题讨论】:

  • 这是计算列还是度量?你有样本数据和预期的输出吗?
  • 这是一种措施。对于示例数据,只需为每个 id ("001","002") 创建 20 行 10。只需为每一行放置随机日期时间。我希望每个 Id 只有一行具有与 TRUE 对应的最大日期时间行的“IS_LAST”。

标签: powerbi dax


【解决方案1】:

Is Last = 
 
VAR latest =  CALCULATE(MAX('Table'[time]), ALLEXCEPT('Table','Table'[id]))
RETURN
IF(SELECTEDVALUE('Table'[time]) = latest, TRUE())

【讨论】:

  • 目标/想法是正确的,但 SELECTEDCOLUMS 的参数给出了错误“参数不是正确的类型”。我在这个措施上做错了吗?
  • 您是否在 PowerBI 桌面中执行此操作?您是否完全复制了代码?您的表名和列名与我的匹配吗?你能分享你的 .pbix 吗?
  • 是的,我在 BI 桌面中创建它。唯一的区别是表和变量的名称,但应该不是问题。
  • 您的时间列是日期时间数据类型吗?
  • 抱歉,我使用的是 SELECTEDCOLUMNS。现在似乎可以工作,但每个 id 的所有行都是 False ......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-12
  • 1970-01-01
  • 2023-03-03
  • 2016-07-04
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多