我们要展示当前时期销售额与上期销售。 要显示前一段时间我们使用的日期dimenion表和以下计算:
CALCULATE(SalesValueGross; DATEADD(日期[日期] -1; YEAR))
不幸的是不知何故,比较年的时候显示未成年人(十进制)的差异。 所不同的获取的更大当我们切片个月。
我们有另一个问题是,这种计算似乎并没有进行比较时,(例如)周1的工作 - 2015年1周 - 2014
任何帮助是极大的赞赏!
我们要展示当前时期销售额与上期销售。 要显示前一段时间我们使用的日期dimenion表和以下计算:
CALCULATE(SalesValueGross; DATEADD(日期[日期] -1; YEAR))
不幸的是不知何故,比较年的时候显示未成年人(十进制)的差异。 所不同的获取的更大当我们切片个月。
我们有另一个问题是,这种计算似乎并没有进行比较时,(例如)周1的工作 - 2015年1周 - 2014
任何帮助是极大的赞赏!
当我想之前历年的销售,我用一个公式如下所示:
Cal Prior Yr Sales:=if(HASONEVALUE('Sale Date'[Calendar Year]),
Calculate([Total Sales],
PREVIOUSYEAR('Sale Date'[Date])),BLANK())
该HASONEVALUE只是保证了只有一年选定所以它会知道正确上年检索。
你可以做一系列的计算,可以让你使用一个计算确定的日期层次你在(假设你在你的日期表可用字段)的什么级别的。 这里是我已经在过去使用,会计日历,这是从正常的历法不一样。
首先,基站计算:
Sales Same Week Prior Year:=
CALCULATE([Total Sales],Filter(All('Sale Date'),
'Sale Date'[Week Key] = max('Sale Date'[Same Week Last Year])))
Sales Same Month Prior Year:=CALCULATE([Total Sales], Filter(All('Sale Date'),
'Sale Date'[Month Seq] = max('Sale Date'[Month Seq])-12))
Sales Same Quarter Prior Year:=CALCULATE([Total Sales], Filter(All('Sale Date'),
'Sale Date'[Quarter Seq] = max('Sale Date'[Quarter Seq])-4))
Sales Prior Year:=CALCULATE([Total Sales], Filter(All('Sale Date'),
'Sale Date'[Fiscal Year] = max('Sale Date'[Fiscal Year])-1))
您可以隐藏所有这些计算,然后创建最后一个计算,让它可见:
Sales Same Period Last Year:=
if(HASONEVALUE('Sale Date'[Week Key]), [Sales Same Week Prior Year],
if(HASONEVALUE('Sale Date'[Month Key]),[Sales Same Month Prior Year],
if(HASONEVALUE('Sale Date'[Quarter Key]),[Sales Same Quarter Prior Year],
if(HASONEVALUE('Sale Date'[Fiscal Year]), [Sales Prior Year], BLANK()))))
您可能需要几个计算字段添加到您的日期表,使其工作。 我有一个字段:上年同周],[月SEQ],[季度序列。 去年同一周是一个整数字段是yyyyww。 一个月序列和SEQ季度刚刚被自动增量按时间顺序不重复的整数。 我对同一周公式去年是
=if('Sale Date'[Week Nbr] = 53, (('Sale Date'[Fiscal Year]-1) * 100) + ([Week Nbr]-1),
(('Sale Date'[Fiscal Year]-1) * 100) + ([Week Nbr]))
我做了序列号在我的SQL视图,这是日日源。 举个例子,如果我的日期表开始于1/1/2010,为2010年1月的月以次为1和2011年1月的月以次为13. 2010年第一季度季度序列是1和2012年第一季度的季度序列是9。
http://www.daxpatterns.com/time-patterns/是这个主题很好看。