Partilhar via


GENERATE

Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual

Devolve uma tabela com o product cartesiano entre cada linha tabela1and a tabela que resulta da avaliação tabela2 no contexto da linha atual tabela1.

Sintaxe

GENERATE(<table1>, <table2>)

Parâmetros

Vigência Definição
table1 Qualquer expressão DAX que retorna uma tabela.
table2 Qualquer expressão DAX que retorna uma tabela.

Regresso value

Uma tabela com a product cartesiana entre cada linha tabela1and a tabela que resulta da avaliação de tabela2 no contexto da linha atual de tabela1

Comentários

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

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

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

Exemplo

No exemplo a seguir, o usuário deseja uma tabela resumida das vendas por região andProduct categoria para o canal Revendedores, como a tabela a seguir:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Vendas de revendedores]
Portugal Acessórios $ 142,227.27
Portugal Bicicletas $ 9,970,200.44
Portugal Vestuário $ 365,847.63
Portugal Componentes $ 2,214,440.19
América do Norte Acessórios $ 379,305.15
América do Norte Bicicletas $ 52,403,796.85
América do Norte Vestuário $ 1,281,193.26
América do Norte Componentes $ 8,882,848.05
Pacífico Acessórios $ 12,769.57
Pacífico Bicicletas $ 710,677.75
Pacífico Vestuário $ 22,902.38
Pacífico Componentes $ 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, onde cada linha é um grupo de territórios, como mostrado abaixo:

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

    ProductCategory[ProductCategoryName] [Vendas de revendedores]
    Bicicletas $ 63,084,675.04
    Componentes $ 11,205,837.96
    Vestuário $ 1,669,943.27
    Acessórios $ 534,301.99
  3. No entanto, quando você usa a tabela acima andevaluate-la sob o contexto de cada linha da tabela de grupos de territórios, obtém resultados diferentes para cada território.