GENERATE
Se aplica a:Columna calculada
Tabla calculada
Medición
Cálculo visual
Devuelve una tabla con el producto cartesiano entre cada fila de table1 y la tabla que se obtiene al evaluar table2 en el contexto de la fila actual de table1.
Sintaxis
GENERATE(<table1>, <table2>)
Parámetros
Término | Definición |
---|---|
table1 | Cualquier expresión DAX que devuelve una tabla. |
table2 | Cualquier expresión DAX que devuelve una tabla. |
Valor devuelto
Una tabla con el producto cartesiano entre cada fila de table1 y la tabla que se obtiene al evaluar table2 en el contexto de la fila actual de table1.
Notas
Si la evaluación de table2 de la fila actual en table1 devuelve una tabla vacía, la tabla de resultados no contendrá la fila actual de table1. Esto difiere de GENERATEALL(), donde la fila actual de table1 se incluirá en los resultados, y las columnas correspondientes a table2 tendrán valores null para esa fila.
Todos los nombres de columna de table1 y table2 deben ser diferentes; si no, se devuelve un error.
Esta función no se admite para su uso en el modo DirectQuery cuando se utiliza en columnas calculadas o en reglas de seguridad de nivel de fila (RLS).
Ejemplo
En el siguiente ejemplo, el usuario quiere una tabla de resumen de las ventas por región y categoría de producto para el canal distribuidores, como en la tabla siguiente:
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [ResellerSales] |
---|---|---|
Europa | Accesorios | 142 227,27 USD |
Europa | Bicicletas | 9 970 200,44 USD |
Europa | Ropa | 365 847,63 USD |
Europa | Componentes | 2 214 440,19 USD |
Norteamérica | Accesorios | 379 305,15 USD |
Norteamérica | Bicicletas | 52 403 796,85 USD |
Norteamérica | Ropa | 1 281 193,26 USD |
Norteamérica | Componentes | 8 882 848,05 USD |
Pacífico | Accesorios | 12 769,57 USD |
Pacífico | Bicicletas | 710 677,75 USD |
Pacífico | Ropa | 22 902,38 USD |
Pacífico | Componentes | 108 549,71 USD |
La fórmula siguiente genera la tabla anterior:
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
La primera instrucción SUMMARIZE,
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
, genera una tabla de grupos de territorios, donde cada fila es un grupo de territorios, como se muestra aquí:SalesTerritory[SalesTerritoryGroup] Norteamérica Europa Pacífico NA La segunda instrucción SUMMARIZE,
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
, genera una tabla de grupos de categoría de producto con las ventas de los distribuidores de cada grupo, como se muestra aquí:ProductCategory[ProductCategoryName] [ResellerSales] Bicicletas 63 084 675,04 USD Componentes 11 205 837,96 USD Clothing 1 669 943,27 USD Accessories 534 301,99 USD Pero, cuando se toma la tabla anterior y se evalúa en el contexto de cada fila de la tabla de grupos de territorios, se obtienen resultados distintos de cada territorio.
Comentaris
https://aka.ms/ContentUserFeedback.
Properament: al llarg del 2024 eliminarem gradualment GitHub Issues com a mecanisme de retroalimentació del contingut i el substituirem per un nou sistema de retroalimentació. Per obtenir més informació, consulteu:Envieu i consulteu els comentaris de