Powerpivot DAX 时间 - 当时间戳落在一小时的第一个 30 分钟或第二个 30 分钟内时计数
Powerpivot DAX time- counting when a timestamp falls within 1st 30 mins or 2nd 30 mins of an hour
假设我有一个用户列表和时间戳。
User Time
Tim 6:15PM
Tim 6:17PM
Tim 6:44PM
Tim 3:33PM
Bort 8:00PM
Bort 9:04PM
Bort 9:05PM
我想为每个用户计算他们有时间戳的 30 分钟增量的数量,在下午 5 点到早上 8 点 30 点之间的每个小时内
结果:
Tim 2
Bort 2
请注意,Tim 在 6:15 和 6:17 有时间,这在下午 6 点的前 30 分钟内,因此只计为 1。他有时间在 6:44PM,在6:30PM之后,所以也算1,他总共有2
Bort 在晚上 8 点上半场有时间,但下半场没有。所以他得到 1。然后他在晚上 9 点内有两次。他总共有2个。
在 Powerpivot/dax 中这样做是否过于激烈?
我假设你指的是最后两行 Bort 的 PM,因为那是你稍后提到它的方式。
我通过执行以下操作实现了这一目标:
- 创建计算列
HalfHour = ROUNDUP(48*TimeStamps[Time],0)
。
- 创建一个度量
CountTimeStamps
,如下所示。
- 将它们放入矩阵视觉对象中,行
User
,值 CountTimeStamps
。
CountTimeStamps =
CALCULATE(
DISTINCTCOUNT(TimeStamps[HalfHour]),
TimeStamps[Time] <= TIMEVALUE("8:30AM") ||
TimeStamps[Time] >= TIMEVALUE("5PM")
)
假设我有一个用户列表和时间戳。
User Time
Tim 6:15PM
Tim 6:17PM
Tim 6:44PM
Tim 3:33PM
Bort 8:00PM
Bort 9:04PM
Bort 9:05PM
我想为每个用户计算他们有时间戳的 30 分钟增量的数量,在下午 5 点到早上 8 点 30 点之间的每个小时内
结果:
Tim 2
Bort 2
请注意,Tim 在 6:15 和 6:17 有时间,这在下午 6 点的前 30 分钟内,因此只计为 1。他有时间在 6:44PM,在6:30PM之后,所以也算1,他总共有2
Bort 在晚上 8 点上半场有时间,但下半场没有。所以他得到 1。然后他在晚上 9 点内有两次。他总共有2个。
在 Powerpivot/dax 中这样做是否过于激烈?
我假设你指的是最后两行 Bort 的 PM,因为那是你稍后提到它的方式。
我通过执行以下操作实现了这一目标:
- 创建计算列
HalfHour = ROUNDUP(48*TimeStamps[Time],0)
。 - 创建一个度量
CountTimeStamps
,如下所示。 - 将它们放入矩阵视觉对象中,行
User
,值CountTimeStamps
。
CountTimeStamps =
CALCULATE(
DISTINCTCOUNT(TimeStamps[HalfHour]),
TimeStamps[Time] <= TIMEVALUE("8:30AM") ||
TimeStamps[Time] >= TIMEVALUE("5PM")
)