Dimensionality — функция диаграммы
Функция Dimensionality() возвращает измерения для текущей строки. В случае со сводными таблицами эта функция возвращает итоговое число столбцов измерений, имеющих неагрегированное содержимое, т. е. не содержащих частичных сумм или свернутых агрегированных показателей.
Синтаксис:
Dimensionality ( )
Возвращаемые типы данных: целое число
Ограничения:
Данная функция доступна только в диаграммах. Для всех типов диаграмм, кроме сводной таблицы, будет возвращено количество измерений во всех строках, за исключением общей, которая будет равна 0.
Сортировка по значениям y на диаграммах или сортировка по столбцам выражений в таблицах не допускается, если в любом из выражений диаграммы используется эта функция диаграмм. Данные возможности сортировки автоматически отключаются. Когда используется эта функция диаграмм в визуализации или таблице, сортировка визуализации будет возвращена к сортировке на входе этой функции.
Пример: выражение диаграммы с использованием Dimensionality
Обзор
Функцию Dimensionality можно использовать в сводной таблице в качестве выражения диаграммы, если нужно использовать разное форматирование ячеек в зависимости от числа измерений в строке, содержащей неагрегированные данные. В этом примере меняется фон в ячейках таблицы, которые отвечают заданному условию.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.
Скрипт загрузки содержит следующее:
-
Набор данных, который загружается в таблицу данных под именем Example.
-
Следующие поля в таблице данных:
-
Country
-
Product
-
Sales
-
Budget
-
Скрипт загрузки
Example:
Load * inline [
Country, Product, Sales, Budget
Sweden, AA, 100000, 50000
Germany, AA, 125000, 175000
Canada, AA, 105000, 98000
Norway, AA, 74850, 68500
Ireland, AA, 49000, 48000
Sweden, BB, 98000, 99000
Germany, BB, 115000, 175000
Norway,BB,71850,68500
Ireland,BB,31000,48000
] (delimiter is ',');
Для получения дополнительной информации об использовании встроенных загрузок см. раздел Использование встроенных загрузок для загрузки данных.
Результаты
Загрузите данные и откройте лист. Создайте новую сводную таблицу и добавьте эти поля как измерения строк:
-
Country
-
Product
Создайте следующие меры:
-
=Sum(Sales) вычисляет сумму значений Sales.
-
=Sum(Budget) вычисляет сумму значений Budget.
-
Функция =Dimensionality() возвращает число измерений для текущей строки.
На панели Свойства меры Sum(Sales) введите следующее выражение в поле Выражение для цвета фона:
=If(Dimensionality()=1 and Sum(Sales)<Sum(Budget),RGB(255,156,156),
If(Dimensionality()=2 and Sum(Sales)<Sum(Budget),RGB(178,29,29)
)
)
Выражение на вычисление фонового цвета меняет фон ячеек не светло-красный или темно-красный при выполнении соответствующих условий.
Country | |||
---|---|---|---|
Product | |||
Sum(Sales) | Sum(Budget) | Dimensionality() | |
(+) Canada | 105000 | 98000 | 1 |
(-) Germany | 240000 | 350000 | 1 |
AA | 125000 | 175000 | 2 |
BB | 115000 | 175000 | 2 |
(+) Ireland | 80000 | 96000 | 1 |
(+) Norway | 146700 | 137000 | 1 |
(+) Sweden | 198000 | 149000 | 1 |
При отображении первого измерения строки (Country) функция Dimensionality возвращает 1. Если расширить измерение строки, например, Germany, чтобы отобразить второе измерение ряда (Product), функция возвращает 2.
С помощью выражения для определения цвета фона для меры Sum(Sales), которое выполняет вычисления по значениям размерности и продаж, можно выделить разные результаты. Если размерность 1, любое значение Country, для которого Sum(Sales) меньше Sum(Budget), выделяется светло-красным цветом (в нашем примере – Germany и Ireland). Если размерность 2, любое значение Product, для которого Sum(Sales) меньше Sum(Budget), выделяется темно-красным цветом (в нашем примере – AA и BB для Germany.
Пример. Сценарий использования Dimensionality
Обзор
В этом примере используется функция Dimensionality, с помощью которой данные применяются к отчету и выделяются ячейки таблицы для некоторых измерений.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.
Скрипт загрузки содержит следующее:
-
Набор данных, который загружается в таблицу данных под именем Example.
-
Следующие поля в таблице данных:
-
Region
-
SalesProduct
-
Year
-
SalesValue
-
Quantity
-
Product
-
Скрипт загрузки
Example:
LOAD * INLINE [
Region, SalesProduct, Year, SalesValue, Quantity, Profit
North, Laptop, 2023, 20000, 15, 4000
North, Mobile, 2023, 15000, 25, 3000
North, Laptop, 2022, 18000, 20, 3500
North, Mobile, 2022, 14000, 22, 2800
South, Laptop, 2023, 22000, 18, 4500
South, Mobile, 2023, 16000, 27, 3200
South, Laptop, 2022, 19000, 19, 3800
South, Mobile, 2022, 15000, 23, 3100
East, Laptop, 2023, 21000, 16, 4200
East, Mobile, 2023, 15500, 24, 3100
East, Laptop, 2022, 18500, 18, 3900
East, Mobile, 2022, 14500, 21, 2950
West, Laptop, 2023, 23000, 17, 4700
West, Mobile, 2023, 16500, 26, 3300
West, Laptop, 2022, 19500, 20, 4000
West, Mobile, 2022, 15500, 24, 3100
North, Tablet, 2023, 12000, 10, 2500
South, Tablet, 2023, 13000, 12, 2700
East, Tablet, 2023, 12500, 11, 2600
West, Tablet, 2023, 13500, 13, 2800
];
Результаты
Загрузите данные и откройте лист. Создайте новую сводную таблицу и добавьте эти поля как измерения строк:
-
Year
-
SalesProduct
-
Region
Создайте следующие меры:
-
=If(Dimensionality()=1, 'Total', 'Detail'), чтобы указать, является ли эта строка Total или Detail.
-
=If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level')), чтобы указать уровень отображаемого измерения.
-
=Sum(SalesValue), чтобы вычислить сумму продаж.
На панели Свойства меры Sum(SalesValue) введите следующее выражение в поле Выражение для цвета фона:
=If(Dimensionality()=1, LightGray())
Выражение на вычисление фонового цвета меняет фон ячеек не светло-серый, если размерность равна 1.
Год | |||
---|---|---|---|
SalesProduct | |||
Region | |||
If(Dimensionality()=1, 'Total', 'Detail') | If(Dimensionality()=3, 'Region-Level', If(Dimensionality()=2, 'Product-Level', 'Summary-Level')) | Sum(SalesValue) | |
(+) 2022 | Всего | Уровень сводных значений | 134000 |
(-) 2023 | Всего | Уровень сводных значений | 200000 |
(-)Ноутбук | Сведения | Уровень продукта | 86000 |
Восток | Сведения | Уровень региона | 21000 |
Север | Сведения | Уровень региона | 20000 |
Юг | Сведения | Уровень региона | 22000 |
Запад | Сведения | Уровень региона | 23000 |
(-) Мобильный телефон | Сведения | Уровень продукта | 63000 |
(-) Планшет | Сведения | Уровень продукта | 51000 |
Можно увидеть, как функция Dimensionality используется для улучшения информативности отчета и выделения измерений всех верхних уровней в строчках таблицы.