我创建了一种度量来计算机器上的人工/营业时间。我的方法适用于每台机器。但是,当我想获取整个机队的总人工/运营小时数时,该度量无法得出正确的结果
我相信我的问题是,我在计算总劳动时间和总使用时间的度量中没有指定任何机器。但是,我不知道如何将其合并到DAX中。
对于我使用的小时数:
Hours Used =
var __MinVal = MIN(SMU_Usage_Lookup[LTDSMU])
var __MaxVal = MAX(SMU_Usage_Lookup[LTDSMU])
return
__MaxVal - __MinVal
SMU_Usage_Lookup表看起来像这样
Machine Date LTDSMU
A 1/1/2016 1
B 1/1/2016 42
A 1/2/2016 6
B 1/2/2016 53
A 1/3/2016 11
B 1/3/2016 62
C 1/3/2016 513
C 1/4/2016 523
当创建表格视觉并将机器带入机器时,我得到正确的结果。
Machine Hours Used Labor Hours Man/Op Hours
A 10 1 .10
B 20 5 .25
C 10 2 .20
我的问题是,如果我为所有计算机输入“总计”,或者只是摆脱“计算机”列。我得到这样的东西
Hours Used Labor Hours Man/Op Hours
522 8 .02
这是不正确的,我知道发生了什么。我的计算方法是计算所用的小时数,就像每台机器只是一台机器一样。它采用Min LTDSMU并将其从Max LTDSMU中减去,而与机器无关。我需要做的是添加每台机器的使用小时数。因此,在这种情况下为10 + 20 +10。我需要显示结果
Hours Used Labor Hours Man/Op Hours
40 8 .2
先谢谢了。让我知道您是否需要进一步澄清。
答案 0 :(得分:1)
将其包装在SUMX
中。我会给出函数的定义,但是您已经用问题标题完美地做到了。
Hours Used =
SUMX (
VALUES ( 'SMU_Usage_Lookup'[Machine] ),
CALCULATE (
var __MinVal = MIN(SMU_Usage_Lookup[LTDSMU])
var __MaxVal = MAX(SMU_Usage_Lookup[LTDSMU])
return
__MaxVal - __MinVal
)
)
这里不需要VAR,因此您也可以按以下方式重构和缩小:
Hours Used =
SUMX (
VALUES ( 'SMU_Usage_Lookup'[Machine] ),
CALCULATE ( MAX ( 'SMU_Usage_Lookup'[LTDSMU] ) - MIN ( 'SMU_Usage_Lookup'[LTDSMU] ) )
)