我正在制作一份报告,其中包含使用SALE_ID唯一标识的优惠金额,其中包含从2015年1月1日开始至今天(2017年12月18日提交时)的不同产品的数据。我用一种名为“Distinct”的简单措施来计算报价金额:
Distinct := DISTINCTCOUNT(dOffers[Sale_ID])
这给了我满意的结果,因为我收到了考虑期间的正确数量。我也在计算同比变化,用以下方法定义前一年的报价:(dCalendar包含datekey表)。
PY Offers :=
SUMX (
VALUES ( dCalender[YearMonthNumber] );
IF (
CALCULATE ( COUNTROWS ( VALUES ( dCalender[FullDates] ) ) )
= CALCULATE ( VALUES ( dCalender[MonthDays] ) );
CALCULATE (
[Distinct];
ALL ( dCalender );
FILTER (
ALL ( dCalender[YearMonthNumber] );
dCalender[YearMonthNumber]
= EARLIER ( dCalender[YearMonthNumber] ) - 12
)
);
CALCULATE (
[Distinct];
ALL ( dCalender );
CALCULATETABLE ( VALUES ( dCalender[MonthDayNumber] ) );
FILTER (
ALL ( dCalender[YearMonthNumber] );
dCalender[YearMonthNumber]
= EARLIER ( dCalender[YearMonthNumber] ) - 12
)
)
)
)
我遇到的问题是,12月份(运行月份)的年度变化,考虑今年(2017年)的年初至今销售额,并将其与全月销售额进行比较在过去几年(2016年和2015年);这使得上个月的比较无法解释,因为我们将半个月的报价与整月的报价进行比较。
我想知道如何解决这个问题:即考虑截至今日的全年销售情况,并将其与去年和两年前的相同时期进行比较(2015年:1月1日开始,然后上涨)到12月18日;同意2016年和2017年的dito)。对于这个问题,SAMEPERIODLASTYEAR调用似乎很简单,但是我收到了连续的日期错误...
提前致谢!
答案 0 :(得分:0)
根据您的描述,我了解到您正在尝试逐年进行比较。
如果不依赖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
)
)
)