2015-11-23 77 views
0

我有以下表&數據可在Excel的PowerPivot可以看出電源樞軸先前值

項,時段,總
1,1,15
1,2,20
1,3 15
2,1,10
2,2,11
2,3,10

雖然我可以輕鬆地獲得了最後時間,我需要獲得以前timefr AME的總像:

項,時段,總,last_timeframe,last_timeframe_total
1,1,15,0,0
1,2,20,1,15
1,3,15,2,20
2,1,10,0,0
2,2,11,1,10
2,3,10,2,11

我已經嘗試了計算公式,但沒」噸似乎工作,只返回空白。 =CALCULATE(SUM(MyTable[total]), MyTable[timeframe] = EARLIER(MyTable[timeframe]) - 1)

+0

請告訴我們你已經嘗試過了。 – tdbeckett

+0

我做了...我發佈了我試過的,這是最後一行。我已經嘗試了很多變體,但他們都返回空白或錯誤​​。 –

回答

2

EARLIER()不理解任何排序的行。

EARLIER()引用嵌套的行上下文。

你真正想要的是LOOKUPVALUE()在這裏,它的數值匹配與您提供的搜索準則中規定的字段,並返回存在相匹配這些標準的行的值。

根據您的示例,它看起來像[時間範圍]是每個項目遞增1的索引。如果這種假設不成立,LOOKUPVALUE()可能不是您想要的功能。

last_timeframe_total = 
LOOKUPVALUE(
    MyTable[total] 
    ,MyTable[item] // This is the field we're searching 
    ,MyTable[item] // This is the value to search for in the field 
         // identified in argument 2 - this evaluates 
         // in the current row context of the table 
         // where we are defining last_timeframe_total 
         // as a calculated column. 
    ,MyTable[timeframe] // The second field we are searching. 
    ,MyTable[timeframe] - 1 // Similar to argument 3. 
) 

這會給你爲當前項目之前的時間表的價值。

忍者編輯:忘了提及Power Pivot並不是真正做這類工作的層。查找和這種數據整形在事務源中的ETL中做得更好。如果這是不可能的,那麼在查詢中填充Power Pivot比Power Pivot更好。 Power Query是一種很好的工具,可用於輕鬆適用於Microsoft生態系統的此類轉換,這是另一個用於Excel的Microsoft插件。

電源Pivot是用於聚合優化的分析數據庫。一般來說,如果你發現自己在想「的每一行,」這是一個跡象,表明你想實現什麼可能是更適合於不同層次的BI解決方案。

+0

太棒了。非常感謝你!!你有計算和早期的任何好的參考?所有MSDN文章和博客文章中並沒有這樣做的兩種功能,適合初學者一個很好的解釋,也沒有很好的例子。 –

+0

PowerPivotPro.com和SQLBI.com。閱讀他們發佈的一切。然後通過DAXPatterns.com開始閱讀 – greggyb