例如:
1.7.2021 10.49.03 TAK001收到VEH270的消息,MessageId " AS8PR01M“3.7.2021 11.58.03 TAK001回复此消息,因为AS8PR01M是从Reference列找到的,TAK001是发件人,DisplayTo是VEH270。
我需要计算这些日期与日期之间的日期差异。有人能帮忙解决这个问题吗,谢谢?
Sender DisplayTo DateTimeSent DateTimeReceived MessageId References
TAK001 TAM210 28.10.2021 11.31.48 28.10.2021 11.31.50 AM7PR01M HE1PR0101
TAM210 TAK001 18.10.2021 11.24.18 18.10.2021 11.24.19 HE1PR0101
TAK001 VEH270, TAA770 3.7.2021 11.58.03 3.7.2021 11.58.05 DU2PR01M AS8PR01M
VEH270 TAK001 1.7.2021 10.48.59 1.7.2021 10.49.03 AS8PR01M 发布于 2022-06-16 14:53:25
如果我正确地理解了基于示例表:当References列中有一个值时,这一行是对引用的MessageID的答复。
基于您的示例,最困难的是处理或时间字符串。28.10.2021 11.31.48不能作为开箱即用的日期/时间来处理。
下面是用于计算响应时间的计算列的DAX,以分钟为单位:
ResponseTime =
VAR Date1_String =
MINX(
CALCULATETABLE(
Table,
[Reference] = EARLIER([MessageId])
),
[DateTimeReceived]
)
VAR Date2_String = [DateTimeSent]
VAR Date1_Date =
FORMAT(
DATEVALUE(
SUBSTITUTE(
LEFT(
Date1_String,
FIND(" ", Date1_String)
),
".",
"/"
)
),
"dd/mm/yyyy"
) +
TIMEVALUE(
SUBSTITUTE(
RIGHT(
Date1_String,
FIND(" ", Date1_String)
),
".",
":"
)
)
VAR Date2_Date =
FORMAT(
DATEVALUE(
SUBSTITUTE(
LEFT(
Date2_String,
FIND(" ", Date2_String)
),
".",
"/"
)
),
"dd/mm/yyyy"
) +
TIMEVALUE(
SUBSTITUTE(
RIGHT(
Date2_String,
FIND(" ", Date2_String)
),
".",
":"
)
)
RETURN
IF(
NOT ISBLANK([References]),
DATEDIFF(
Date1_Date,
Date2_Date,
MINUTE
),
BLANK()
)代码引入了几个变量:
Date1_String从初始消息中检索DateTimeReceived,使用当前Reference中的MessageId搜索消息,MessageId是当前行中的DateTimeSent。也就是说,reply.Date1_Date和Date2_Date是一种将字符串解析为可行的日期/时间格式的方法(稍微复杂一些)。在RETURN之后,一个简单的IF语句比计算两个日期之间的时差时间差(如果只有列References不是空的话)更简单。
发布于 2022-06-17 10:28:45
我想我至少有办法解决这个问题:
响应时间=
VAR Responseday =计算(
MIN(Sheet1DateTimeReceived)
过滤器(Sheet1,Reference=更早的(MessageId))
VAR Receiveday = DateTimeReceived
返回
DATEDIFF(Receiveday,Responseday,DAY)https://stackoverflow.com/questions/72641962
复制相似问题