На прошлой неделе вышел пост об использовании функции Dimensionality() в сводных таблицах. Сегодня расскажу о родственной ей функции – secondarydimensionality() на поста QlikCommunity. По сути – это функция горизонтальной размерности или второе измерение dimensionality. Когда впервые встречаешься с этой функцией, то ее можно назвать другим уровнем функции Dimensionality().
Secondarydimensionality(): когда используем
В качестве основы и определения воспользуемся опять руководством по QlikView:
Secondarydimensionality() возвращает число измерений строк в сводной таблице, если нет агрегированного содержания, то есть нет частичных сумм или свернутых расчетов. Эта функция эквивалентна функции Dimensionality() для горизонтальных измерений в сводной таблице. Если эту функцию использовать вне сводной таблицы, то она всегда возвращает значение 0.
Что это значит, если сказать более простым языком?
Если функция dimensionality () показывает число вертикальных измерений, secondarydimensionality () показывает число горизонтальных измерений.
Давайте рассмотрим это на примере:
У нас есть четыре измерения (столбца): Продукт; Категория; Тип; Продажи.
Каждый продукт имеет максимум две категории.
Каждая категория имеет не более трех типов.
Давайте создадим сводную таблицу, используя три из имеющихся измерений: Продукт, Категория и Тип, а в качестве выражения возьмем Продажи.
Эта сводная таблица имеет три измерения, поэтому максимальная разрядность – 3.
The function is used to show on which dimensionality level each of the Pivot Table row is:
Сахар (‘Sugar’) имеет разрядность 1, которая является итоговой (Total) для измерения Продукт (‘Product’).
Соль (‘Salt’) имеет разрядность 2, которая является итоговой (Total) для каждой Категории (‘Category’) этого продукта.
Масло (‘Oil’) имеет разрядность 3, которая является единственным значением для каждого Типа (‘Type’) Продуктов категории.
Итак, если кратко Secondarydimensionality() (и Dimensionality()) – это число измерений, которое используется в таблице. Чтобы лучше понять, о чем я, обратимся к таблице ниже. Функция используется для того, чтобы показать, на каком уровне размерности каждая строчка сводной таблицы:
Secondarydimensionality(): практическое применение
1) Чтобы показать уровень размерности в нашем примере цветом. Пропишем в Выражении (Expression) Продажи – раскрываем «+» и в Цвет фона (Background Color) прописываем формулу в Описание (Definition):
1 2 3 |
if(secondaryDimensionality()=1,RGB(151,255,255),if(secondaryDimensionality()=2,RGB(0,238,0), if(secondaryDimensionality()=3,RGB(255,130,171)))) |
Получаем:
2) Выделим цветом строки с данными по продажам, согласно их уровню размерности (по заданному нами условию). Пропишем в Выражении (Expression) Продажи – раскрываем «+» и в Цвет фона (Background Color) прописываем формулу в Описание (Definition):
1 |
if(Dimensionality()=1 and sum(Sales)<150,RGB(151,255,255),if(Dimensionality()=2 and sum(Sales)<=20,RGB(0,238,0),if(Dimensionality()=3 and Sum(Sales)<=20,RGB(255,130,171)))) |
Уровень 1 —> Значения <35 | Уровень 2 —> Значения <=15 | Уровень 3 —> Значения<=20 |
Скачайте Excel-файл с данными и QlikView-файл для тренировки.
Внимание: Для того, чтобы использовать скрипт, указанные ниже, файл Excel должен быть сохранен в ту же директорию, что и ваш файл qvd. Иначе вам нужно будет сделать настройки пути к файлу — secondarydimensionality.xlsx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Directory; LOAD Product, Category, Type, Sales FROM secondarydimensionality.xlsx (ooxml, embedded labels, table is Sheet1); |
На этом сегодня все о размерности и функциях. Расскажите о своем опыте — когда-нибудь в работе применяли эту функцию?
Жду комменты. Спасибо.
Свежие комментарии