Excel 显示前几年的年初至今销售额

Excel 显示前几年的年初至今销售额,excel,pivot-table,powerbi,powerpivot,dax,Excel,Pivot Table,Powerbi,Powerpivot,Dax,我正在制作一份统计报价金额的报告,唯一标识为SALE_ID,其中包含从2015年1月1日开始到今天(询问时为2017年12月18日)的不同产品的数据。我用一种称为“独特”的简单方法计算报价金额: Distinct:=DISTINCTCOUNT(道夫[Sale\u ID]) 这给了我令人满意的结果,因为在所考虑的时间段内,我收到了正确的计数。我还计算同比变化,用以下度量定义上一年的报价:(dCalendar包含datekey表) 我面临的问题是,12月份(连续月份)的同比变化考虑了今年(2017年

我正在制作一份统计报价金额的报告,唯一标识为SALE_ID,其中包含从2015年1月1日开始到今天(询问时为2017年12月18日)的不同产品的数据。我用一种称为“独特”的简单方法计算报价金额:

Distinct:=DISTINCTCOUNT(道夫[Sale\u ID])

这给了我令人满意的结果,因为在所考虑的时间段内,我收到了正确的计数。我还计算同比变化,用以下度量定义上一年的报价:(dCalendar包含datekey表)

我面临的问题是,12月份(连续月份)的同比变化考虑了今年(2017年)迄今为止的销售额,并将其与前几年(2016年和2015年)的满月销售额进行了比较;这使得上个月的比较难以理解,因为我们将半个月的报价与一个月的报价进行比较

我想知道如何解决这个问题:即考虑到迄今为止全年的销售额,并将其与去年和两年前的相同时期进行比较(2015:从1月1日开始,直到12月18日;IDEM DITO为2016和2017)。对于这个问题,SAMEPERIODLASTYEAR调用似乎很简单,但我收到了一个连续的日期错误


提前谢谢

从您的描述中,我了解到您正试图进行年与年、月与日的比较

在不依赖SAMEPERIODLASTYEAR等任何时间智能功能的情况下,您可能希望尝试此版本的度量:

PY Offers :=
SUMX(
    VALUES( dCalendar[YearMonthNumber] );

    CALCULATE(
    VAR currDate = MAX( dCalendar[FullDates] )
    VAR currYear = YEAR(currDate)
    VAR currMonth = MONTH(currDate)
    VAR currDay = DAY(currDate) 
    RETURN
        CALCULATE(
            [Distinct];
            ALL( dCalendar );
            YEAR(dCalendar[FullDates]) = currYear - 1;
            MONTH(dCalendar[FullDates]) = currMonth;
            DAY(dCalendar[FullDates]) <= currDay
        )
    )
)
PY提供:=
萨姆克斯(
值(dCalendar[YearMonthNumber]);
算计(
VAR currDate=MAX(dCalendar[FullDates])
VAR currYear=年(currDate)
VAR currMonth=月份(currDate)
VAR currDay=天(currDate)
返回
算计(
[独特的];
全部(dCalendar);
年份(dCalendar[完整日期])=当前年份-1;
月份(dCalendar[完整日期])=当前月份;
日期(dCalendar[完整日期])
PY Offers :=
SUMX(
    VALUES( dCalendar[YearMonthNumber] );

    CALCULATE(
    VAR currDate = MAX( dCalendar[FullDates] )
    VAR currYear = YEAR(currDate)
    VAR currMonth = MONTH(currDate)
    VAR currDay = DAY(currDate) 
    RETURN
        CALCULATE(
            [Distinct];
            ALL( dCalendar );
            YEAR(dCalendar[FullDates]) = currYear - 1;
            MONTH(dCalendar[FullDates]) = currMonth;
            DAY(dCalendar[FullDates]) <= currDay
        )
    )
)