關於您的具體要求,將每個Deliveryid的所有噸數相加,您就近了。試試這個:=CALCULATE(SUMX(Table1,[Tonnes]),FILTER(Table1,[Deliveryid]=EARLIER([Deliveryid])))
。它會將每個交付週期的噸數加起來。
關於您的後續願望,請將當前日期之前的每個Deliveryid的所有噸數相加,請嘗試以下操作:=CALCULATE(SUMX(Table1,[Tonnes]),FILTER(FILTER(Table1,[Deliveryid]=EARLIER([Deliveryid])),[Date]<EARLIER([Date])))
。
下表可以幫助展示一下這些做(我使用很長的列標題,希望能夠使這更容易理解):
TotalTonnesForDeliveryid(與上面的第一個代碼項目所做的)只需Deliveryid總計噸。在下表中,您會看到TotalTonnesForDeliveryid for Deliveryid 1的重量爲91噸... 38(2017年1月1日起)+ 23(起始於2017年1月)+ 30(起始於2017年1月6日)。
TotalTonnesForDeliveryBeforeCurrentDate(使用上面的第二個代碼項目完成)總計噸數僅由當前日期之前的日期的遞送ID 決定。 TotalTonnesForDeliveryBeforeCurrentDate爲首次出現的Deliveryid顯示空白是因爲沒有事先交付。如果一個特定的Deliveryid已經交付了多於一個的交貨,則每次出現的交付單顯示以前日期噸的累計。因此,對於Deliveryid 1:初始交貨日期(2017/1/1)顯示空白TotalTonnesForDeliveryidBeforeCurrentDate(因爲沒有以前的交貨);第二個交貨日期(1/3/2017)顯示38噸(這是2017年1月1日交付的);第三次交貨日期(1/6/2017)顯示61噸(這是第一次交貨時的38次+第二次交貨時的23次)。
我強烈推薦這個網站:http://www.daxpatterns.com這使得它看起來很容易,但我敢保證這絕對不是,但它絕對是值得學習的。 –
謝謝尼克。看起來不錯。對DAX來說還是很新的,所以任何資源都是很好的! – ABowering
對不起,我不能回答你的問題 - 仍然在學習我自己。但有一件事我學會了很難:與SQL表達式不同,如果您已經加入了列,那麼它會在您的表達式中使用哪一列(事實上的列或維的列)。 –