我在Power中有一个原始数据表,在那里我试图计算每天最后一个小时执行的作业数量,最好是使用DAX。
可以使用DAX在DAX中构建表的表示形式(实际表是从Power Query中的各种CSV文件生成的):
Raw Data = {
( "A", "42784", DATE( 2022, 8, 31 ), 5 ),
( "A", "91783", DATE( 2022, 8, 31 ), 5 ),
( "A", "19845", DATE( 2022, 8, 31 ), 6 ),
( "A", "76165", DATE( 2022, 8, 31 ), 6 ),
( "A", "28253", DATE( 2022, 8, 31 ), 7 ),
( "A", "83294", DATE( 2022, 8, 31 ), 8 ),
( "A", "47431", DATE( 2022, 8, 31 ), 9 ),
( "A", "20025", DATE( 2022, 8, 31 ), 10 ),
( "A", "10564", DATE( 2022, 8, 31 ), 10 ),
( "A", "65463", DATE( 2022, 8, 31 ), 10 ),
( "B", "44750", DATE( 2022, 9, 1 ), 5 ),
( "B", "47302", DATE( 2022, 9, 1 ), 6 ),
( "B", "31759", DATE( 2022, 9, 1 ), 6 ),
( "B", "26638", DATE( 2022, 9, 1 ), 7 ),
( "B", "55076", DATE( 2022, 9, 1 ), 7 ),
( "B", "59205", DATE( 2022, 9, 1 ), 8 ),
( "B", "52319", DATE( 2022, 9, 1 ), 8 )
}

然后,我在DAX中构建了第二个表,它给出了唯一的日期值(实际的表从日期表复制日期列--它本身来自原始数据)。
Dimension = CALENDAR(FIRSTDATE('Raw Data'[Value3]), LASTDATE('Raw Data'[Value3])) 当我添加一列尝试计算每天在最后一个小时内处理了多少项时,就会出现问题。
项通过计数Value 2列来计数。一天中的小时显示在Value 4列中。
8月31日10点3件,9月1日8点2件。
我为此使用的DAX是:
LatestUnitsProcessed =
CALCULATE (
DISTINCTCOUNT ( 'Raw Data'[Value2] ),
FILTER (
FILTER ( 'Raw Data', 'Raw Data'[Value3] = 'Dimension'[Date] ),
'Raw Data'[Value4] = MAX('Raw Data'[Value4])
)
)

这将正确地返回8月31日的3,但留下9月1日的空白。可以肯定的是,这是因为MAX('Raw Data'[Value4])忽略了日期,并试图查看在1号10点处理了多少数据。
我将如何包括数据标准来做到这一点?
发布于 2022-09-01 14:01:16

这创建了一种虚拟关系。
LatestUnitsProcessed =
VAR last = CALCULATE(MAX('Raw Data'[Value4]), TREATAS({'Dimension'[Date]} ,'Raw Data'[Value3]))
RETURN
CALCULATE (
DISTINCTCOUNT ( 'Raw Data'[Value2] ),
TREATAS({'Dimension'[Date]} ,'Raw Data'[Value3]),
'Raw Data'[Value4] = last
) 发布于 2022-09-01 13:53:03
试着用关系(维->Value3).
LatestUnitsProcessed =
VAR _max =
MAX ( 'Raw Data'[Value4] )
RETURN
CALCULATE (
DISTINCTCOUNT ( 'Raw Data'[Value2] ),
ALLEXCEPT ( 'Raw Data', 'Raw Data'[Value3] ),
'Raw Data'[Value4] = _max
)


https://stackoverflow.com/questions/73569772
复制相似问题