GENERATEALL
Область применения: вычисление вычисляемого столбца вычисляемой таблицы Меры визуального элемента
Возвращает таблицу с декартовским продуктом между каждой строкой в таблице1 и таблицей, которая приводит к оценке таблицы2 в контексте текущей строки из таблицы1.
Синтаксис
GENERATEALL(<table1>, <table2>)
Параметры
Термин | Определение |
---|---|
таблица1 | Любое выражение DAX, возвращающее таблицу. |
table2 | Любое выражение DAX, возвращающее таблицу. |
Возвращаемое значение
Таблица с декартовским продуктом между каждой строкой в таблице1 и таблицей, которая приводит к оценке таблицы2 в контексте текущей строки из таблицы1
Замечания
Если оценка таблицы 2 для текущей строки в таблице1 возвращает пустую таблицу, текущая строка из таблицы1 будет включена в результаты и столбцы, соответствующие таблице2, будут иметь значения NULL для этой строки. Это отличается от GENERATE(), где текущая строка из таблицы 1 не будет включена в результаты.
Все имена столбцов из таблицы1 и таблицы2 должны отличаться или возвращается ошибка.
Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).
Пример
В следующем примере пользователь хочет сводную таблицу продаж по регионам и категории продуктов для канала торговых посредников, например следующую таблицу:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Продажи торговых посредников] |
---|---|---|
Европа | Аксессуары | 142 227,27 долл. США |
Европа | Велосипеды | 9 970 200,44 долл. США |
Европа | Clothing | 365 847,63 долл. США |
Европа | Компоненты | 2 214 440,19 долл. США |
Неприменимо | Аксессуары | |
Неприменимо | Велосипеды | |
Неприменимо | Clothing | |
Неприменимо | Компоненты | |
Северная Америка | Аксессуары | 379 305,15 долл. США |
Северная Америка | Велосипеды | 52 403 796,85 долл. США |
Северная Америка | Clothing | 1 281 193,26 долл. США |
Северная Америка | Компоненты | 8 882 848,05 долл. США |
Тихоокеанский регион | Аксессуары | 12 769,57 долл. США |
Тихоокеанский регион | Велосипеды | 710 677,75 долл. США |
Тихоокеанский регион | Clothing | 22 902,38 долл. США |
Тихоокеанский регион | Компоненты | 108 549,71 долл. США |
Следующая формула создает приведенную выше таблицу:
GENERATEALL(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
Первый СУММТ создает таблицу групп территорий, где каждая строка — это группа территорий, например перечисленные ниже:
SalesTerritory[SalesTerritoryGroup] Северная Америка Европа Тихоокеанский регион Неприменимо Вторая функция SUMMARIZE создает таблицу групп категорий продуктов с продажами торгового посредника для каждой группы, как показано ниже:
ProductCategory[ProductCategoryName] [Продажи торговых посредников] Велосипеды 63 084 675,04 долл. США Компоненты 11 205 837,96 долл. США Clothing 1 669 943,27 долл. США Аксессуары 534 301,99 долл. США Однако при получении приведенной выше таблицы и оценке таблицы в контексте каждой строки из таблицы групп территорий вы получите разные результаты для каждой территории.