2017-09-11 110 views
0

我試圖根據4條標準創建一個運行總計,但似乎無法使其工作 - 對於powerpivot和DAX都很抱歉。基於行值的Powerpivot DAX總和

我有一個查詢,總共有17列 - 13實際數據和4計算。

我想根據4條標準獲得累計總數。 我還沒有能夠得到1倍的標準至今工作:

CALCULATE(
    SUM(Tonnes), 
    Filter(Query,[Deliveryid]=[Deliveryid]) 
    ) 

基本上要總結每個deliveryid所有噸 - 這是一個支點簡單,但我想最終做到這一點對所有日期之前的日期值的日期和每個商品和送貨地址等。

任何幫助,將不勝感激。

+1

我強烈推薦這個網站:http://www.daxpatterns.com這使得它看起來很容易,但我敢保證這絕對不是,但它絕對是值得學習的。 –

+0

謝謝尼克。看起來不錯。對DAX來說還是很新的,所以任何資源都是很好的! – ABowering

+1

對不起,我不能回答你的問題 - 仍然在學習我自己。但有一件事我學會了很難:與SQL表達式不同,如果您已經加入了列,那麼它會在您的表達式中使用哪一列(事實上的列或維的列)。 –

回答

1

關於您的具體要求,將每個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次)。

enter image description here