GENERATEALL

Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual

Retorna uma tabela com o produto cartesiano entre cada linha em table1 e a tabela resultante da avaliação de table2 no contexto da linha atual de table1.

Sintaxe

GENERATEALL(<table1>, <table2>)  

Parâmetros

Termo Definição
table1 Qualquer expressão DAX que retorna uma tabela.
table2 Qualquer expressão DAX que retorna uma tabela.

Valor retornado

Uma tabela com o produto cartesiano entre cada linha em table1 e a tabela resultante da avaliação table2 no contexto da linha atual de table1

Comentários

  • Se a avaliação de table2 para a linha atual em table1 retornar uma tabela vazia, a linha atual de table1 será incluída nos resultados e as colunas correspondentes a table2 terão valores nulos para essa linha. Isso é diferente de GENERATE(), em que a linha atual de table1não será incluída nos resultados.

  • Todos os nomes de coluna de table1 e table2 devem ser diferentes ou um erro é retornado.

  • Não há suporte para a função ser usada no modo DirectQuery quando usada em regras RLS (segurança em nível de linha) ou colunas calculadas.

Exemplo

No exemplo a seguir, o usuário deseja uma tabela de resumo das vendas por região e categoria de produto para o canal de revendedores, como a tabela a seguir:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Vendas do Revendedor]
Europa Acessórios US$ 142.227,27
Europa Bicicletas US$ 9.970.200,44
Europa Vestuário US$ 365.847,63
Europa Componentes US$ 2.214.440,19
NA Acessórios
NA Bicicletas
NA Vestuário
NA Componentes
América do Norte Acessórios US$ 379.305,15
América do Norte Bicicletas US$ 52.403.796,85
América do Norte Vestuário US$ 1.281.193,26
América do Norte Componentes US$ 8.882.848,05
Pacífico Acessórios US$ 12.769,57
Pacífico Bicicletas US$ 710.677,75
Pacífico Vestuário US$ 22.902,38
Pacífico Componentes US$ 108.549,71

A seguinte fórmula produzirá a tabela acima:

GENERATEALL(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. A primeira instrução SUMMARIZE produz uma tabela de grupos de regiões, em que cada linha é um grupo de regiões, como as mostradas abaixo:

    SalesTerritory[SalesTerritoryGroup]
    América do Norte
    Europa
    Pacífico
    NA
  2. A segunda instrução SUMMARIZE produz uma tabela de grupos de categorias de produtos com as vendas do revendedor para cada grupo, conforme mostrado abaixo:

    ProductCategory[ProductCategoryName] [Vendas do Revendedor]
    Bicicletas US$ 63.084.675,04
    Componentes US$ 11.205.837,96
    Clothing US$ 1.669.943,27
    Acessórios US$ 534.301,99
  3. No entanto, quando você observa a tabela acima e avalia a tabela no contexto de cada linha da tabela de grupos de regiões, obtém resultados diferentes para cada região.