Функция CUBESET в Excel
Функция CUBESET определяет вычисляемый набор элементов или кортежей, отправляя выражение набора на многомерный куб данных на сервере. Она позволяет извлекать все уникальные значения из этого выражения и поддерживает параметры сортировки.

Синтаксис
=CUBESET(connection, set_expression, [caption], [sort_order], [sort_by])
Аргументы
- connection (обязательный): Текстовая строка с именем подключения к модели данных (многомерному набору данных).
- set_expression (обязательный): Текстовая строка с выражением набора, результатом которого является набор элементов или кортежей. Кроме того, set_expression может быть ссылкой на ячейку или диапазон Excel, содержащий один или несколько элементов, кортежей или наборов, включённых в данный набор.
- caption (необязательный): Текстовая строка, заменяющая заголовок, заданный в многомерном наборе данных.
- sort_order (необязательный): Целое число от 0 до 6, определяющее тип сортировки. Значение по умолчанию — 0.
Целое число Перечислимая константа Описание Аргумент sort_by 0 или опущено SortNone Оставляет набор в существующем порядке Игнорируется 1 SortAscending Сортирует набор в порядке возрастания по sort_by Обязательно 2 SortDescending Сортирует набор в порядке убывания по sort_by Обязательно 3 SortAlphaAscending Сортирует набор в алфавитном порядке возрастания Игнорируется 4 Sort_Alpha_Descending Сортирует набор в алфавитном порядке убывания Игнорируется 5 Sort_Natural_Ascending Сортирует набор в естественном порядке возрастания Игнорируется 6 Sort_Natural_Descending Сортирует набор в естественном порядке убывания Игнорируется - sort_by (необязательный): текстовая строка со значением (MEASURE), по которому выполняется сортировка. Этот аргумент игнорируется, если для sort_order не заданы значения 1 или 2. Например, чтобы получить регион с наибольшими продажами, используйте set_expression для определения набора регионов и укажите sort_by как меру продаж.
Возвращаемое значение
Функция CUBESET определяет вычисляемый набор элементов.
Примечания к функции
- Функция CUBESET возвращает набор, содержащий элементы, определённые выражением set_expression, в указанном порядке сортировки sort_order по критерию sort_by.
- Сообщение #ПОЛУЧЕНИЕ_ДАННЫХ… отображается во время вычисления функции CUBESET — до полного получения всех данных.
- Функция CUBESET возвращает значение ошибки #ИМЯ?, если:
- connectionне является допустимым подключением к книге, сохранённым в книге, например ThisWorkbookDataModel;
- Сервер оперативной аналитической обработки (OLAP) недоступен, не запущен или вернул сообщение об ошибке.
- Функция CUBESET возвращает значение ошибки #ЗНАЧ!, если:
- sort_orderустановлен в значение 1или 2, что требует указания аргумента sort_by, но он был опущен;
- set_expressionпревышает 255 символов.Примечание:В качестве обходного решения можно ввести текстовую строку в ячейку и затем использовать ссылку на эту ячейку в качестве аргумента.
- Функция CUBESET возвращает значение ошибки #Н/Д, если:
- set_expressionнедопустимо;
- Набор содержит один или несколько элементов с измерением, отличающимся от измерений других элементов.
- Аргументы функции CUBESET, за исключением sort_order и ссылок на ячейки, должны быть заключены в двойные кавычки (").
- Имена элементов, измерений, таблиц и т. д., используемые в выражении set_expression, необходимо заключать в квадратные скобки ([ ]).
Пример
У меня есть таблица с именем «sales2021», содержащая информацию о продажах и рейтинге различных продуктов по двум категориям за 2021 год. Чтобы использовать функцию CUBESET для определения вычисляемого набора (общие продажи) продуктов по разным месяцам, сначала необходимо добавить данные из этой таблицы в модель данныхтекущей книги; её имя всегда будет ThisWorkbookDataModelЗатем скопируйте или введите приведённую ниже формулу в ячейку, где нужно получить итоговые значения (в данном примере — итог по конкретным продуктам за определённый месяц), и нажмите клавишу Enter, чтобы получить результат:
=CUBESET()«ThisWorkbookDataModel»,($K$5,$J$5,$I$5,$H$5),«Итог»)
Где
$K$5=CUBEMEMBER(«ThisWorkbookDataModel»,«[sales2021].[Product].&,[Tights]»)
$J$5=CUBEMEMBER(«ThisWorkbookDataModel»,«[sales2021].[Product].&,[Socks]»)
$I$5=CUBEMEMBER(«ThisWorkbookDataModel»,«[sales2021].[Product].&,[Shorts]»)
$H$5=CUBEMEMBER(«ThisWorkbookDataModel»,«[sales2021].[Product].&,[Caps]»)
√ Примечание:Ячейка, содержащая формулу CUBESET, отображает только указанный вами заголовок. Сам набор хранится невидимо за ячейкой. Сама по себе функция CUBESET бесполезна. В приведённой выше формуле ссылки на ячейки представляют собой результаты, возвращённые функцией CUBEMEMBER.

Связанные функции
Функция CUBEMEMBER извлекает элемент или кортеж из многомерного набора данных, если он существует; в противном случае возвращается ошибка #Н/Д.
Функция CUBEVALUE возвращает агрегированное значение из многомерного набора данных, отфильтрованное по нескольким выражениям-членам (member_expression).
Функция CUBEKPIMEMBER возвращает свойство ключевого показателя эффективности (KPI) и отображает его название в ячейке.
Функция CUBESETCOUNT возвращает количество элементов в наборе.
Лучшие инструменты для повышения продуктивности в Office
Kutools для Excel — Помогает Вам выделяться из толпы
Kutools для Excel предлагает более 300 функций,гарантируя, что всё необходимое всегда под рукой…
Office Tab — Включает вкладочное чтение и редактирование в Microsoft Office (включая Excel)
- Переключайтесь между десятками открытых документов всего за секунду!
- Сокращает сотни кликов мышью каждый день — забудьте о «мышечной руке» раз и навсегда!
- Повышает продуктивность на 50 % при одновременном просмотре и редактировании нескольких документов.
- Добавляет эффективность вкладок в Office (включая Excel) — как в Chrome, Edge и Firefox.