База знаний

Вопрос-ответ

Раздел с ответами на самые популярные вопросы

Ответили на самые популярные вопросы о платформе Alpha BI.

Как получить в мерах значение по определенному адресу (размерности и мере)?

Надо указать в скобках имена размерностей и меры: (размерность1, мера1) или (размерность1, [размерность2...] мера2) ([valutaStat2].[RUB], [Measures].[Courses]) или ([valutaStat2].[RUB], [valutaStat2].[USD], [Measures].[Courses])

Как получить имя мембера (то что мы видим в таблице)?

Надо обратиться к его свойству MEMBER_CAPTION: [valutaStat2].CurrentMember.Properties('MEMBER_CAPTION')

Как получить информацию по мемберу по необходимому уровню?

Надо привести текущий мембер к нужному уровню с помощью команды Ancestor: Ancestor([period].[2017].[1 квартал].[Январь].[1], [period].[year]) - здесь мы обращаемся к уровню год

Как получить значение атрибута мембера?

Надо обратиться к нему с помощью Properties [period].[month]).Properties('NumberMonth')

Как получить мембер из сета?

Надо обратиться к item и указать индекс мемебра: { [valutaStat2].[RUB]; [valutaStat2].[USD] }.item(0)

Как обратиться с предыдущему/следующему мемберу иерархии?

Для этого существует свойства у мембера PrevMember/Nextmember [Period].CurrentMember.PrevMember

Как вычислить значение за самый последний месяц из набора (переменная - элементы иерархии)?

Отсортировать по убыванию (Order(Set_Expression, Numeric_Expression [ , { ASC | DESC | BASC | BDESC } ] ) ) и взять n верхних элементов, тут 1 IIF([Period].Currentmember.Level.Name = 'year', (order(${ax},[Period].CurrentMember.Properties("month_by_day"),BDESC).ITEM(0),[Measures].[1111]),1)

Как вычислить максимальное значение в месяце?

Отсортировать по убыванию (Order(Set_Expression, Numeric_Expression [ , { ASC | DESC | BASC | BDESC } ] ) ) и взять n верхних элементов, тут 1 max([Period].Children, [Measures].[Dolg_month_start])

Как получить развернутую иерархию по элементам иерархии (фильтрация по переменной region)?

exists([region_org].[region].Members,${region})

Как получить значение за параллельный период (например, предыдущий год)?

Для этого существует функция ParallelPeriod
(ParallelPeriod([period_year_month_dim].[date_period_hier].[year_lvl], 1, ${Отчетный период}), [Measures].[Средняя Численность])

Как получить накопительную сумму за предыдущий период (например прошлый год)?

Для этого стоит использовать функция SUM и ParallelPeriod

YTD - интервал времени в год.

SUM(Ytd(ParallelPeriod([period_year_month_dim].[date_period_hier].[year_lvl], 1, ${Отчетный период}.CurrentMember)),[Measures].[ФЗП месяц])

Как получить значения за квартал?

LastPeriods - функция возвращает набор элементов из последовательности элементов на уровне указанного элемента, начинающегося или заканчивающегося элементом.
IIF((${Отчетный период}.Properties('month') = 3)
OR (${Отчетный период}.Properties('month') = 6)
OR (${Отчетный период}.Properties('month') = 9)
OR (${Отчетный период}.Properties('month') = 12),

AVG(LastPeriods(3, ${Отчетный период}.CurrentMember),[Measures].[ССЧ месяц]), null)

Как убрать infinity в значение расчетной меры и заменить 0?

IIF (<условие>, <выражение, если условие истинно>, <выражение, если условие не истинно>)

IIF ( [Measures].[ССЧ пред. накоп.] <> 0, ([Measures].[ССЧ тек. накоп.]/[Measures].[ССЧ пред. накоп.]*100), 0)

Как получить и использовать текущую дату в mdx?

Пример:
Есть иерархия, где элементами являются даты. Для фильтрации нужно получить кортеж вида [year_month_day].[year_month_day_hier].[2018-11-15], где в качестве элемента будет динамически подставляться текущая дата в нужном виде. Для этого нужно использовать:
{StrToMember("[year_month_day].[year_month_day_hier].["|| Format(now(), "yyyy-mm-dd") || "]")}

Как конкретную меру отфильтровать по заданным значениям переменных типа элемент и элементы иерархии?

aggregate( [year_dim].[year_hier].[All year_hiers].Firstchild:${Сумма на текущий год}.PrevMember, Aggregate({${!Заказчик}}, (${Год версии справочника АСБУ}, [Measures].[ZZNETAM_MAX])))

Как получить содержание/отсутствие наименований элементов в определенном уровне/атрибуте?

Для этого используется формула Matches/Not Matches(Содержит/Не содержит). Для разделения наименований элементов можно использовать символ ' | '

Filter([direc].[ier].DefaultMember.Children,[direc].[ier].CurrentMember.Properties("ABBRV") Not Matches 'ЕИ|ПКО')

 

Наверх