我想将实际销售额与去年的销售额进行比较。这种比较的困难在于工作日的顺应性,因此是the年的顺应性。
日级示例:
2016-02-04(星期四):实际销售量:580,-去年销售量:1.008,-
与...比较
2015-02-05(星期四):实际销量:1.008,-
所以我想比较一个月中的相同工作日,而不仅仅是相同的日期。
月级示例:
2016年:(le年)2016年2月1日-2019年2月29日(2016年2月)实际销售量:19.300,-:去年销售值:19.000,-
与...比较
2015年:(无leap年)2015年2月2日至2015年2月3日(按周逻辑显示2015年2月)的实际销售价值:19.000,-
我不仅要比较2016年2月和2015年2月,还要确切地比较工作日的总和。
我尝试使用日期计算维度来编写此计算,但它仅在日期级别有效。计算维度的名称:日期计算星期成员的天日期:ComparisonWD
SCOPE (
[Date].[Year - Quarter - Month - Date].MEMBERS,
[Date].[Date].MEMBERS );
( [Date Calculations Week Day].[ComparisonWD].[Previous Year],
[Date Calculations Week Day].[AggregationWD].Members )
= ( [Date Calculations Week Day].[ComparisonWD].DefaultMember,
ParallelPeriod( [Date].[Year - Quarter - Month - Date].[Date],
364,
[Date].[Year - Quarter - Month - Date].CurrentMember ) );
END SCOPE;
2015年成绩:
2016年成绩:
它可以在日级别上运行,但是正如您所看到的,它不在月份和年份级别上显示。
我该如何实现?
我得到了解决方案:
此问题的多维数据集计算代码:
// ------------------------------------------------------------------------
//
// Comparison Week Day - Date.Calendar
//
// ------------------------------------------------------------------------
SCOPE (
[Date].[Year - Quarter - Month - Date].MEMBERS,
[Date].[Date].MEMBERS );
///////////////////////////////////////////////////////////////////////////////////////
( [Date Calculations Week Day].[ComparisonWD].[Previous Year],
[Date Calculations Week Day].[AggregationWD].Members )
= SUM({ParallelPeriod([Date].[Year - Quarter - Month - Date].[Date], 364, Descendants( [Date].[Year - Quarter - Month - Date].CurrentMember , [Date].[Year - Quarter - Month - Date].[Date]).item(0)) :
Parallelperiod ([Date].[Year - Quarter - Month - Date].[Date], 364, Descendants( [Date].[Year - Quarter - Month - Date].CurrentMember , [Date].[Year - Quarter - Month - Date].[Date]).item((Descendants( [Date].[Year - Quarter - Month - Date].CurrentMember , [Date].[Year - Quarter - Month - Date].[Date])).Count - 1))}, [Date Calculations Week Day].[ComparisonWD].DefaultMember );
END SCOPE;
SCOPE ([Date Calculations Week Day].[ComparisonWD].[Diff. Over Previous Year]);
THIS = IIF( IsEmpty( [Date Calculations Week Day].[ComparisonWD].DefaultMember )
OR IsEmpty( [Date Calculations Week Day].[ComparisonWD].[Previous Year] ),
NULL,
[Date Calculations Week Day].[ComparisonWD].DefaultMember
- [Date Calculations Week Day].[ComparisonWD].[Previous Year] );
NON_EMPTY_BEHAVIOR(THIS) = [Date Calculations Week Day].[ComparisonWD].DefaultMember;
FORE_COLOR(THIS) = IIF( [Date Calculations Week Day].[ComparisonWD].[Diff. Over Previous Year] < 0, 255, 0); // 255 = RED
END SCOPE;
SCOPE ([Date Calculations Week Day].[ComparisonWD].[Diff. % Over Previous Year]);
THIS = IIF( IsEmpty( [Date Calculations Week Day].[ComparisonWD].[Diff. Over Previous Year] )
OR IsEmpty( [Date Calculations Week Day].[ComparisonWD].[Previous Year] ),
NULL,
[Date Calculations Week Day].[ComparisonWD].[Diff. Over Previous Year]
/ [Date Calculations Week Day].[ComparisonWD].[Previous Year] );
NON_EMPTY_BEHAVIOR(THIS) = [Date Calculations Week Day].[ComparisonWD].DefaultMember;
FORMAT_STRING(THIS) = 'Percent';
FORE_COLOR(THIS) = IIF( [Date Calculations Week Day].[ComparisonWD].[Diff. % Over Previous Year] < 0, 255, 0); // 255 = RED
END SCOPE;
///////////////
// Tuple (All years, All Months) is the default number (keeps compatibility with OWC11)
( [Date].[Year].[All], [Date].[MonthYear].[All],
Except( [Date Calculations Week Day].[ComparisonWD].[ComparisonWD].MEMBERS, [Date Calculations Week Day].[ComparisonWD].DefaultMember ) ) = [Date Calculations Week Day].[ComparisonWD].DefaultMember;
现在在每个级别上都有求和值:
使用此日期计算工作日维度,您可以在“工作日”逻辑中为每个度量显示上一年的值。