Leer en inglés

Compartir a través de


GENERATE

Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual

Devuelve una tabla con el product cartesiano entre cada fila de tabla1and la tabla resultante de evaluar tabla2 en el contexto de la fila actual de tabla1.

Sintaxis

GENERATE(<table1>, <table2>)

Parámetros

Término Definición
table1 Cualquier expresión DAX que devuelva una tabla.
table2 Cualquier expresión DAX que devuelva una tabla.

Devolver value

Una tabla con el product cartesiano entre cada fila de tabla1and la tabla que resulta de evaluar tabla2 en el contexto de la fila actual de tabla1

Observaciones

  • If la evaluación de tabla2 para la fila actual de tabla1 devuelve una tabla vacía, la tabla de resultados not contendrá la fila actual de tabla1. Esto es diferente de GENERATEALL() donde la fila actual de tabla1 se incluirá en los resultados and columnas correspondientes a tabla2 tendrá values null para esa fila.

  • All nombres de columna de tabla1and deben ser diferentes or se devuelve un error.

  • Esta función se not se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas or reglas de seguridad de nivel de fila (RLS).

Ejemplo

En el ejemplo siguiente, el usuario quiere una tabla de resumen de las ventas por región andProduct Categoría para el canal Resellers, como en la tabla siguiente:

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Ventas de revendedor]
Europa Accesorios $ 142,227.27
Europa Bicicletas $ 9,970,200,44
Europa Ropa $ 365,847.63
Europa Componentes $ 2,214,440.19
América del Norte Accesorios $ 379,305.15
América del Norte Bicicletas $ 52,403,796.85
América del Norte Ropa $ 1,281,193.26
América del Norte Componentes $ 8,882,848.05
Pacífico Accesorios $ 12,769,57
Pacífico Bicicletas $ 710,677,75
Pacífico Ropa $ 22.902.38
Pacífico Componentes $ 108,549.71

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])
)
)
  1. La instrucción firstSUMMARIZE, SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup]), genera una tabla de grupos de territorio, donde cada fila es un grupo de territorio, como se muestra a continuación:

    SalesTerritory[SalesTerritoryGroup]
    América del Norte
    Europa
    Pacífico
    NA
  2. La instrucción secondSUMMARIZE, SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])), genera una tabla de grupos de Product Categoría con las ventas reseller para cada grupo, como se muestra a continuación:

    ProductCategory[ProductCategoryName] [Ventas de revendedor]
    Bicicletas $ 63,084,675.04
    Componentes $ 11,205,837,96
    Ropa $ 1,669,943,27
    Accesorios $ 534,301,99
  3. Sin embargo, cuando se toma la tabla anterior andevaluate en el contexto de cada fila de la tabla de grupos de territorio, se obtienen resultados diferentes para cada territorio.