因此,我有一个表,其中包含具有样式的部门中所有机器的输出。例如:
|Machine| |Style| | QTY| |Time| |Date| etc...
1 001 100 8:00AM 5/21/19
2 001 200 8:05AM 5/21/19
1 001 100 9:00AM 5/21/19
1 004 100 10:00AM 5/21/19
2 001 200 9:05AM 5/21/19
我正在寻找一台机器改变样式的次数。因此,在这种情况下,对于机器1,它是一种样式更改,对于机器2,它是零更改。
我试图修改一些代码无济于事;主要是因为我在理解逻辑时遇到困难,而且我真的没有想到要使用的良好索引。 这是到目前为止我得到的:
EarliestChange Over Index =
VAR Temp =
CALCULATE (
MAX ( Table[Index] ),
FILTER (
Table,
[Index] < EARLIER ( [Index] )
&& [Style] <> EARLIER ( [Style])
&& Table[Date] = today()-1
)
)
VAR Temp1 =
CALCULATE (
MIN ( [Index] ),
FILTER (
Table,
[Index] > EARLIER ( [Index] )
&& [Style] <> EARLIER ( [Style])
&& Table[Date] = today()-1
)
)
RETURN
IF ( [Index] > temp && OR ( [Index] < temp1, ISBLANK ( temp1 ) ), temp + 1, 0 )
我试图将其限制在一天之内,以便评估结果,以便删除该部分。我尝试了两个不同的索引,一个是计算机号,另一个是从今天到表上最小日期的时间差。在视觉上,我一直在对EarearestChange Over Index进行不同的计数,并减去了一个,因为它不构成“转换”。
答案 0 :(得分:2)
一种实现方式:
首先,我对您的数据进行了如下修改:
测量:
Style Change Count
=
SUMX (
Data,
VAR Current_DateTime = Data[Date-Time]
VAR Current_Style = Data[Style]
VAR Previous_DateTime =
CALCULATE (
MAX ( Data[Date-Time] ),
FILTER ( ALLEXCEPT ( Data, Data[Machine] ), Data[Date-Time] < Current_DateTime )
)
VAR Previous_Style =
CALCULATE (
VALUES ( Data[Style] ),
FILTER ( ALLEXCEPT ( Data, Data[Machine] ), Data[Date-Time] = Previous_DateTime )
)
RETURN
IF ( Current_Style = Previous_Style || ISBLANK ( Previous_Style ), 0, 1 )
)
结果:
工作原理: