DAX-基于保留时间/行层次结构的财政日历,找到上一年



我有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过滤器而出现的问题,但不确定还要尝试什么。

所需的结果将为我提供正确的上一年索引值值,而不管选择的时间维度如何。即,如下所示;

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

进行了几个小时的研究,我终于通过将'先前的fiscalweekenddate'引入逻辑中来破解它。

如果有人觉得它有用,这是方法。

Previous Year Indexed Volume:=
CALCULATE([IndexedVolume],
FILTER (
    ALL ( 'FiscalDatesTable' ),
    CONTAINS (
        VALUES ( 'FiscalDatesTable'[PreviousYearFiscalWeekEndDate] ),
        'FiscalDatesTable'[PreviousYearFiscalWeekEndDate],
        'FiscalDatesTable'[FiscalWeekEndDate]
    )
  )
)

最新更新