2015-11-23 56 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