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])
)
)
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 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 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.