我有一个平面显示订单及时订单,订单有一个ID,可能会随着时间的推移而改变,只会更改订单的log_date。
order_id qty log_date
1 3 2018-03-03
1 2 2018-01-06
1 4 2017-12-04
1 6 2017-10-10
2 1 2018-02-01
2 3 2018-01-04
2 2 2018-01-02
2 4 2017-12-01
我的目标是使用切片机,这样我就可以在特定时刻查看订单状态。如果切片器设置为“2018-01-01”,则预期结果将是id = 1,qty = 4且id = 2,qty = 1。我尝试过使用计算表,但切片器更改时不会重新计算。
TEST =
VAR TheDate = SELECTEDVALUE(Slicer, DATEVALUE("2000-01-01"))
RETURN
SUMMARIZE (
Blad1,
Blad1[order_id],
"The_Qty", CALCULATE (
SUM ( Blad1[qty] ),
TOPN (
1,
FILTER ( VALUES ( Blad1[log_date] ), Blad1[log_date] <= TheDate ),
[log_date], DESC
)
)
)
有解决方法吗?
问候。
答案 0 :(得分:0)
计算表格不响应切片器。您需要一个度量和一个单独的切片表。
为日期切片器创建一个新表。您可以使用CALENDAR()
或CALENDARAUTO()
。
DateSlicer = CALENDARAUTO()
创建一个度量来挑选所需的行:
RowFilter =
VAR SlicerDate = MAX(DateSlicer[Date])
VAR LastLogDate = CALCULATE(MAX(Blad1[log_date]),
FILTER(ALL(Blad1),
Blad1[order_id] = MAX(Blad1[order_id]) &&
Blad1[log_date] <= SlicerDate))
RETURN IF(MAX(Blad1[log_date]) = LastLogDate, 1, 0)
现在,如果您使用order_id
,qty
和log_date
创建表格或矩阵,则可以在可视级别过滤器部分中使用此度量,以便它只显示行RowFilter = 1
。