Powerpivot DAX计时时间戳在第1个30分钟或第2个30分钟内

时间:2017-11-09 17:41:05

标签: excel powerpivot dax

说我有一个用户和时间戳列表。

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

请注意,蒂姆有时间在6:15和6:17,这是在下午6点的前30分钟内,因此它只计为1.他有一个时间在下午6:44,在6之后: 30PM,因此它也算作1.总共有2个

Bort在上午8点的上半场有一段时间,但在下半场没有。所以他得到1.然后他在晚上9点有两次。他总共有2人。

这在Powerpivot / dax中是否过于激烈?

1 个答案:

答案 0 :(得分:0)

我假设你指的是最后两个Bort行的PM,因为那是你以后如何引用它的。

我能够通过以下方式实现这一目标:

  1. 创建计算列HalfHour = ROUNDUP(48*TimeStamps[Time],0)
  2. 创建一个度量CountTimeStamps,如下所示。
  3. 将它们放在矩阵视觉效果中,行User和值CountTimeStamps。{/ li>
    CountTimeStamps =
        CALCULATE(
            DISTINCTCOUNT(TimeStamps[HalfHour]),
                TimeStamps[Time] <= TIMEVALUE("8:30AM") ||
                TimeStamps[Time] >= TIMEVALUE("5PM")
                 )