Ler em inglês

Compartilhar via


GENERATE

aplica-se a:coluna calculadatabela calculadaMeasurecálculo visual

Retorna uma tabela com a product Cartesiana entre cada linha na tabela 1 and tabela resultante da avaliação tabela2 no contexto da linha atual de tabela1.

Sintaxe

GENERATE(<table1>, <table2>)  

Parâmetros

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

Retornar value

Uma tabela com a product Cartesiana entre cada linha na tabela 1 and tabela resultante da avaliação tabela2 no contexto da linha atual de tabela1

Observações

  • If a avaliação de tabela2 para a linha atual no tabela1 retorna uma tabela vazia, então a tabela de resultados not conterá a linha atual de tabela1. Isso é diferente de GENERATEALL() em que a linha atual de tabela1 será incluída nos resultados and colunas correspondentes a tabela2 terão values nulos para essa linha.

  • All nomes de coluna de tabela1andtabela2 devem ser diferentes or um error é retornado.

  • Essa função not tem suporte para uso no modo DirectQuery quando usada em colunas calculadas or regras de RLS (segurança em nível de linha).

Exemplo

No exemplo a seguir, o usuário deseja uma tabela de resumo das vendas por Região andProduct Categoria para o canal Revendedores, como a tabela a seguir:

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

A fórmula a seguir produz a tabela acima:

GENERATE(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory   
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. A instrução firstSUMMARIZE, SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]), produz uma tabela de grupos de territórios, em que cada linha é um grupo de territórios, conforme mostrado abaixo:

    SalesTerritory[SalesTerritoryGroup]
    América do Norte
    Europa
    Pacífico
    NA
  2. A instrução secondSUMMARIZE, SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])), produz uma tabela de grupos de categorias Product com as vendas do Revendedor para cada grupo, conforme mostrado abaixo:

    ProductCategory[ProductCategoryName] [Vendas do revendedor]
    Bicicletas R$ 63.084.675,04
    Componentes R$ 11.205.837,96
    Roupa R$ 1.669.943,27
    Acessórios R$ 534.301,99
  3. No entanto, quando você pega a tabela acima andevaluate-a no contexto de cada linha da tabela de grupos de território, obtém resultados diferentes para cada território.