Ler em inglês

Partilhar via


GENERATEALL

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

GENERATEALL(<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 retorna uma tabela vazia, a linha atual de da tabela1 será incluída nos resultados and colunas correspondentes a tabela2 terá values nula para essa linha. Isso é diferente de GENERATE(), onde a linha atual da tabela1 not será incluída nos resultados.

  • 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
NA Acessórios
NA Bicicletas
NA Vestuário
NA Componentes
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:

GENERATEALL(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. O firstSUMMARIZE produz uma tabela de grupos de territórios, onde cada linha é um grupo de territórios, como os listados abaixo:

    SalesTerritory[SalesTerritoryGroup]
    América do Norte
    Portugal
    Pacífico
    NA
  2. O secondSUMMARIZE produz uma tabela de Product grupos de Categorias 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 a tabela sob o contexto de cada linha da tabela de grupos de territórios, obtém resultados diferentes para cada território.