【问题标题】:Powerpivot average, only show a range of rowsPowerpivot 平均值,仅显示一系列行
【发布时间】:2016-01-15 21:31:03
【问题描述】:
我计算了苹果的平均价格。 See example
在新列“testar”中,我只想显示 1990 - 1994 年(黄色单元格),因为我的公式中没有指定其他年份。
我用于平均计算的公式是:
=CALCULATE (
AVERAGEX (Datasrc; Datasrc[C_P2] );
DATESBETWEEN(Datasrc[Year];"1990-01-01";"1994-01-01")
)
有什么想法或建议如何做到这一点?
【问题讨论】:
标签:
excel
average
powerpivot
dax
【解决方案1】:
您需要在 IF() 中测试 Datasrc[Year] 的值。
这是一个使用我拥有的虚拟数据集的示例。
Testar =
IF(
MAX( DimDate[Year] ) > 2010
&& MAX( DimDate[Year] ) < 2014
,[SumAmt]
)
我们正在测试 MAX() DimDate[Year]。在任何给定的数据透视行上,上下文中只有一年,因此 max 是该数据透视行上的年份。
您使用的度量计算您定义的 5 年上下文中的平均值,覆盖当前过滤器上下文。
此外,AVERAGEX() 在这种情况下是不必要的;您可以使用 AVERAGE(Datasrc[C_P2])。
【解决方案2】:
几乎,感谢您的宝贵意见,让我朝着正确的方向前进!!!,因为我的年表格式不同,我想列出平均价格,所以我做了一点不同。我只是将您的公式与我的 平均公式 结合起来,得到了我想要的结果。
See final result here
使用的代码:
=IF(
MAX( Datasrc[Year2] ) >= 1990
&& MAX( Datasrc[Year2] ) <= 1994
;
CALCULATE (
AVERAGEX (Datasrc; Datasrc[C_P2] );
DATESBETWEEN(Datasrc[Year];"1990-01-01";"1994-01-01")
)
)
公式的第一部分,只取出我感兴趣的年份。
公式的第二部分 [CALCULATE(AVERAGEX....] 计算我感兴趣的年份的平均值。