我有2个表,它们具有由'FiscalWeekEndDate'值定义的多对一关系,就像这样;
WordsTable
FiscalWeekEndDate | WordGroup | IndexedVolume
01/01/2017 | Dining | 1,000
01/01/2017 | Shopping | 2,000
08/01/2017 | Dining | 2,000
08/01/2017 | Sports | 5,000
FiscalDatesTable
FiscalWeekEndDate | FiscalWeek | FiscalMonth | FiscalQuarter | FiscalYear
01/01/2017 | 21 | 5 | 2 | 2017
08/01/2017 | 22 | 5 | 2 | 2017
我正在尝试在DAX(去年)中创建一个简单的PY等价度量,它适用于所有级别的时间层次 - 即所选财政周,月,季度或年度的PY。我不想要YTD(年初至今)的衡量标准。
这是我到目前为止所拥有的;
Previous Year Indexed Volume:=
CALCULATE([IndexedVolume],
FILTER(ALL('FiscalDatesTable'),'FiscalWeeksTable'[FiscalWeek]=
MAX('FiscalDatesTable'[FiscalWeek]) && 'FiscalDatesTable'[FiscalYear] =
MAX('FiscalDatesTable'[FiscalYear]) - 1))
返回此类结果;
Fiscal Year 2017: 7,000
Fiscal Quarter 2: 7,000
Fiscal Month 5: 7,000
Fiscal Week 22: 7,000
Fiscal Week 21: 3,000
基本上,月,季度或年维度返回最大财政周值(22:7,000)。我知道这是由于我的DAX过滤器引起的问题,但不确定还有什么可以尝试。
无论选择何种时间维度,所需的结果都会为我提供正确的上一年度IndexedVolume值。即如下;
Fiscal Year 2017: 10,000
Fiscal Quarter 2: 10,000
Fiscal Month 5: 10,000
Fiscal Week 22: 7,000
Fiscal Week 21: 3,000
答案 0 :(得分:0)
经过几个小时的研究,我终于通过在逻辑中引入'PreviousFiscalWeekEndDate'来破解它。
如果有人发现它有用,这是方法。
Previous Year Indexed Volume:=
CALCULATE([IndexedVolume],
FILTER (
ALL ( 'FiscalDatesTable' ),
CONTAINS (
VALUES ( 'FiscalDatesTable'[PreviousYearFiscalWeekEndDate] ),
'FiscalDatesTable'[PreviousYearFiscalWeekEndDate],
'FiscalDatesTable'[FiscalWeekEndDate]
)
)
)