【发布时间】:2018-10-25 12:24:06
【问题描述】:
我对 DAX 世界还很陌生,但通过滚动浏览,我成功地实现了累积(运行)总计,并沿此结构定义了一个度量:Running_Total_QTY:=CALCULATE(SUM(Reporting[QTY]),FILTER(ALL(Reporting[DATE_R]),Reporting[DATE_R]<=MAX(Reporting[DATE_R])))
对于如下所示的表格:
ID DATE_R QTY
A1 5/11/2018 9:00 5
A1 5/11/2018 9:01 10
A1 5/11/2018 9:01 -5
A1 5/11/2018 9:02 50
A1 5/11/2018 9:05 -20
B1 5/11/2018 9:00 3
B1 5/11/2018 9:01 -20
B1 5/11/2018 9:01 4
B1 5/11/2018 9:02 20
B1 5/11/2018 9:03 10
问题是我需要在这个运行总数中添加一个起始数量 - QTY_INIT,我从另一个看起来像这样的表中收到它:
ID1 QTY_INIT
A1 100
B1 200
通过反复试验,我成功地创建了第二个度量来计算平均值(1 个项目!),定义如下:
Average_starting_quantity:=CALCULATE(AVERAGE(Starting_Quantity[QTY_INIT]),FILTER(ALL(Starting_Quantity[ID1]),Starting_Quantity[ID1]=LASTNONBLANK(Reporting[ID],TRUE())))
然后将两个度量相加。
Running_plus_total:=[Running_Total_QTY]+[Average_starting_quantity]
这种方法有效,但是效率很低,速度也很慢(数据集很大)。
如何在不使用“假”平均值(或最大值、最小值等)的情况下直接从第二个表中添加 QTY_INIT?如何优化度量以提高性能?
提前感谢您的帮助。
问候
【问题讨论】:
-
是否有任何商业原因阻止您将初始值附加到数据集的开头?从那时起,您将所有数据都放在一个表中,这意味着您只需使用 [Running_Total_QTY] 度量即可获得结果。
-
嗨,马库斯,谢谢。原则上这是最优雅的解决方案,但我宁愿避免附加数据,因为我有更多的分析需要省略初始数量。
标签: dax powerpivot cumulative-sum