因此,我有一个表,其中包含具有样式的部门中所有机器的输出。例如:
|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 )
我试着把它限制在只有一天,这样我就可以评估结果,这样就可以去掉那部分。我尝试了两种不同的索引,一个是机器编号,另一个是表中与今天和最小日期之间的时间差。在视觉上,我一直在对索引上的EarliestChange进行不同的计数,并减去1,因为它不构成“转换”。
编辑:同时记录多个样式导致错误切换的问题。
|Machine| |Style| | QTY| |Time| |Date| etc...
1 001 100 8:00AM 5/21/19
1 001 100 9:00AM 5/21/19
1 004 100 10:00AM 5/21/19
1 004 100 10:00AM 5/21/19
1 004 100 10:00AM 5/21/19
在一个部门,时间永远不会重复。但是,在另一个部门(无论出于何种原因)可能会同时记录3个轮询。这将导致等式将10:00am记录为3次转换。这可能是一个系统故障,为什么每个卷没有唯一的时间戳,但不幸的是,情况就是这样。
发布于 2019-05-23 03:45:41
一种方法是:
首先,我对您的数据进行了如下修改:
测量:
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 )
)
结果:
它的工作原理:
我们需要使用SUMX来确保我们的小计和总计在数据表上迭代,并为每条记录计算“以前的日期-时间”,这只是每台机器上比当前数据小的最大日期时间(因此我们可以计算以前的样式,这是一种样式,其中correct;
https://stackoverflow.com/questions/56261789
复制相似问题