DAX的年初至今平均值

时间:2018-03-22 13:50:15

标签: powerbi dax ssas-tabular

enter image description here

需要计算DAX的年初至今平均值和LYTD平均值,我们的财政年度从4月开始。 因此,如果我现在的日子是2017年6月的第5天,那么lytd_AVG将从4月到6月 (MTD Aprn 17)+(MTD May 17)+(MTD June 17)/ 3

和LYTD_AVG会是 (MTD Apr 16)+(MTD May 16)+(MTD June 16)/ 3

假设我目前的日期是06-03-2017,那么YTD平均值将是60

1 个答案:

答案 0 :(得分:1)

假设您的数据是按月提供的(因为您没有样本数据),对于YTD,您应该能够使用如下所示的内容:

YTD Avg = CALCULATE(AVERAGE(Table[Value]), DATESYTD(Table[Date], "03-31"))

最后一个参数指定年终日期(Reference)。

您可以将SAMEPERIOODLASTYEAR功能用于LYTD:

LYTD Avg = CALCULATE(AVERAGE(Table[Value]),
               SAMEPERIODLASTYEAR(DATESYTD(Table[Date], "03-31")))

修改:由于您的数据是每天,我们需要做更多的工作。

首先,将月份和年度计算列添加到您的表中:

Month = MONTH(Table[Date])
FiscalYear = YEAR(MINX(DATESYTD(Table[Date], "03-31"), [Date]))

然后,您将按月采取措施:

YTD = AVERAGEX
          SUMMARIZE(Table1,
              Table1[Month],
              "MTDAmount", SUM(Table1[Amount])),
          [MTDAmount])
LYTD = AVERAGEX(
           SUMMARIZE(
               FILTER(ALL(Table1),
                   Table1[Month] IN VALUES(Table1[Month]) &&
                   Table1[FiscalYear] = MAX(Table1[FiscalYear]) - 1),
               Table1[Month],
               "MTDAmount", SUM(Table1[Amount])),
           [MTDAmount])

然后你应该能够构建这样的表:

Fiscal YTD