【问题标题】:DAX calculating the age of a ticket in Power BIDAX 在 Power BI 中计算票证的年龄
【发布时间】:2020-01-16 20:05:05
【问题描述】:

我有一个名为“Tickets”的表格,其中包含所有门票。我正在尝试计算一张票自创建以来的年龄。票证表有一个名为“票证”[CreateDate] 的列。我已经尝试过 DatesBetween 和 DatesInPeriod 但没有得到正确的数据,我是 DAX 新手,仍在尝试找出函数,请帮忙。

添加 CreatedDate 和 ClosedDate 列的数据类型图片。

【问题讨论】:

  • 您的数据看起来如何?一张票有多条记录还是只有一条记录?您的数据中是否有截止日期?在这些场景中,样本数据和期望的输出是一个巨大的帮助
  • @CR7SMS 是的,Ticket 表有几千条记录。是的,有一个 ClosedDate 字段
  • 查看下面的答案,看看它是否适合你..

标签: powerbi dax powerbi-embedded


【解决方案1】:

由于您的日期字段格式不正确,您必须为 Createdate 和 Closedate 创建计算列:

Createdate1 = Date(Left([Createdate ],4),Right(left([Createdate ],6),2),right([Createdate ],2)
Closedate1= Date(Left([Closedate],4),Right(left([Closedate],6),2),right([Closedate],2)

您必须使用DATEDIFF 函数来查找日期之间的差异。

如果您只是在寻找截至今天的年龄:

Age = DATEDIFF('Table'[CreateDate1],TODAY(),DAY)

如果您的表格中有截止日期:

Age = DATEDIFF('Table'[CreateDate1],'Table'[ClosedDate1],DAY)

如果您正在寻找其他内容,请提供示例数据和所需的输出。

编辑:

如果您想同时使用 Open 和 Closed 票证:

Age = IF('Table'[TicketStatus]="Open",
         DATEDIFF('Table'[CreateDate1],TODAY(),DAY),
         DATEDIFF('Table'[CreateDate1],'Table'[ClosedDate1],DAY))

【讨论】:

  • 好的太好了,我正在考虑在 =IF([TicketStatus]='Open',Age = DATEDIFF('Table'[CreateDate],TODAY(),DAY), DATEDIFF ('Table'[CreateDate],'Table'[ClosedDate],DAY))
  • 也将其添加到答案中
  • 谢谢!但是在尝试使用 IF 时出现错误,首先我只能在计算列中使用 'Table'[TicketStatus]="Open" 时使用它。然后我收到此错误“遇到日期值的无效数字表示”
  • 你可以尝试其中一个计算,看看它是否有效,也许只是 DATEDIFF('Table'[CreateDate],TODAY(),DAY)....计算列...
  • 是的试过了,不幸的是同样的错误。我认为它的列日期格式有问题。日期格式为 YYYYMMDD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 2020-08-23
相关资源
最近更新 更多