Памятка по многомерным выражениям
Задача |
Выражение для вычисления |
---|---|
Простой расчет валовой прибыли |
[Measures].[Sales Amount] - [Measures].[Total Product Cost]
|
Продажи в США |
([Measures].[Sales Amount], [Customer].[Country].&[United States])
|
Продажи за год (работает для любого уровня иерархии даты) |
Aggregate(
PeriodsToDate( [Date].[Calendar Hierarchy].[Year],
[Date].[Calendar Hierarchy].CurrentMember ),
([Measures].[Sales]))
|
Альтернативное выражение года до даты (YTD, QTD, MTD) |
AGGREGATE (
YTD ([Date Order].[Calendar].CurrentMember),
Measures.[Sales Amount])
|
Рейтинг продуктов |
IIF (Product.Product.CurrentMember IS Product.Product.[All],NULL,
IIF (Measures.[Sales Amount] = 0, NULL,
RANK(Product.Product.CurrentMember, ORDER (Product.Product.Members, Measures.[Sales Amount]))))
|
Продажи от 365 дней назад |
(ParallelPeriod([Invoice Date].[Date Hierarchy].[Date], 365, [Invoice Date].[Date Hierarchy].CurrentMember), [Measures].[Sales Amount])
|
Продажи в предыдущем периоде |
(Measures.[Sales Amount], [Date Order].[Calendar].CurrentMember.PrevMember)
|
10 самых продаваемых товаров (именованный набор) |
TopCount (Product.Product.Product.Members,10,Measures.[Sales Amount])
|
Средние продажи за три года от СЕЙЧАС () |
Avg(
{ParallelPeriod( [Date].[Date].[Year], 3,
StrToMember("[Date].[Date].&[" + Format(now(), "yyyyMMdd") + "]")) :
StrToMember("[Date].[Date].&[" + Format(now(), "yyyyMMdd") + "]")} , [Measures].[Sales Count])
|
Заголовок действия детализации |
'Get Sales Details for'
+[Product].[Product].CurrentMember.Member_Caption
|
Изменить цвет текста расчета SSAS |
IIF([Measures].[Profit Percentage] < .40, 255 , 0)
|
Изменение вычисления с помощью оператора SCOPE |
SCOPE ([Measures].[Scope Profit]);
THIS = ([Measures].[Sales Amount] - [Measures].[Standard Product Cost]);
END SCOPE;
|
Очистить стоимость на всех уровнях |
SCOPE ([Customer].[Customer Geography].[All], Measures.RatioOverParent);
THIS = NULL
|
Выражение значения KPI SSAS |
[Measures].[Sales Amount] * 1.2
|
Выражение целевого KPI SSAS |
Case
When IsEmpty
(ParallelPeriod
([Date Order].[Fiscal].[Fiscal Year],
1,[Date Order].[Fiscal].CurrentMember))
Then [Measures].[Sales Amount]
Else 1.10 *
([Measures].[Sales Amount],
ParallelPeriod([Date Order].[Fiscal].[Fiscal Year],
1,[Date Order].[Fiscal].CurrentMember))
End
|
Выражение статуса KPI SSAS |
Case
When KpiValue( "Sales Revenue YTD" ) / KpiGoal( "Sales RevenueYTD" ) > 1
Then 1
When KpiValue( "Sales Revenue YTD" ) / KpiGoal( "Sales Revenue YTD" ) <= 1 And KpiValue( "Sales Revenue YTD" ) / KpiGoal( "Sales Revenue YTD" ) >= .85
Then 0
Else -1
End
|
Выражение тренда KPI SSAS |
Case
When IsEmpty
(ParallelPeriod
([Date Order].[Fiscal].[Fiscal Year],
1,[Date Order].[Fiscal].CurrentMember))
Then 0
When VBA!Abs
((KpiValue( "Sales Revenue YTD" )- (KpiValue( "Sales Revenue YTD" ),
ParallelPeriod( [Date Order].[Fiscal].[Fiscal Year],
1, [Date Order].[Fiscal].CurrentMember)))
/(KpiValue( "Sales Revenue YTD" ),
ParallelPeriod
( [Date Order].[Fiscal].[Fiscal Year],
1,[Date Order].[Fiscal].CurrentMember))) <=.02 Then 0 When (KpiValue( "Sales Revenue YTD" )- (KpiValue( "Sales Revenue YTD" ), ParallelPeriod ( [Date Order].[Fiscal].[Fiscal Year], 1, [Date Order].[Fiscal].CurrentMember))) /(KpiValue( "Sales Revenue YTD" ), ParallelPeriod( [Date Order].[Fiscal].[Fiscal Year],1,[Date Order].[Fiscal].CurrentMember)) >.02
Then 1
Else -1
End |