GENERATE
s’applique à :colonne calculéetable calculéeMeasurecalcul visuel
Retourne une table avec l'product cartesienne entre chaque ligne de table1and la table qui résulte de l’évaluation table2 dans le contexte de la ligne actuelle de table1.
Syntaxe
GENERATE(<table1>, <table2>)
Paramètres
Terme | Définition |
---|---|
table1 |
Toute expression DAX qui retourne une table. |
table2 |
Toute expression DAX qui retourne une table. |
Retourner value
Table avec le product cartesien entre chaque ligne de table1and la table qui résulte de l’évaluation table2 dans le contexte de la ligne actuelle de table1
Remarques
If l’évaluation de table2 pour la ligne active dans table1 retourne une table vide, la table de résultats not contenir la ligne actuelle de table1. Ceci est différent de GENERATEALL() où la ligne actuelle de table1 sera incluse dans les résultats and colonnes correspondant à table2 aura une values null pour cette ligne.
All noms de colonnes de table1andtable2 doivent être différents or un error est retourné.
Cette fonction est not prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées or règles de sécurité au niveau des lignes (RLS).
Exemple
Dans l’exemple suivant, l’utilisateur souhaite une table récapitulative des ventes par région andProduct Category pour le canal Resellers, comme le tableau suivant :
SalesTerritory[SalesTerritoryGroup] | ProductCategory[ProductCategoryName] | [Reseller Sales] |
---|---|---|
Europe | Accessoires | 142 227,27 $ |
Europe | Vélos | 9 970 200,44 $ |
Europe | Vêtement | 365 847,63 $ |
Europe | Composants | 2 214 440,19 $ |
Amérique du Nord | Accessoires | 379 305,15 $ |
Amérique du Nord | Vélos | 52 403 796,85 $ |
Amérique du Nord | Vêtement | 1 281 193,26 $ |
Amérique du Nord | Composants | 8 882 848,05 $ |
Pacifique | Accessoires | 12 769,57 $ |
Pacifique | Vélos | 710 677,75 $ |
Pacifique | Vêtement | 22 902,38 $ |
Pacifique | Composants | 108 549,71 $ |
La formule suivante produit le tableau ci-dessus :
GENERATE(
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
,SUMMARIZE(ProductCategory
, [ProductCategoryName]
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])
)
)
L’instruction firstSUMMARIZE,
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])
, produit une table des groupes de territoires, où chaque ligne est un groupe de territoires, comme indiqué ci-dessous :SalesTerritory[SalesTerritoryGroup] Amérique du Nord Europe Pacifique NA L’instruction secondSUMMARIZE,
SUMMARIZE(ProductCategory, [ProductCategoryName], "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD]))
, produit une table de groupes de catégories Product avec les ventes reseller pour chaque groupe, comme indiqué ci-dessous :ProductCategory[ProductCategoryName] [Reseller Sales] Vélos 63 084 675,04 $ Composants 11 205 837,96 $ Vêtement 1 669 943,27 $ Accessoires 534 301,99 $ Toutefois, lorsque vous prenez le tableau ci-dessus andevaluate sous le contexte de chaque ligne de la table groupes de territoires, vous obtenez des résultats différents pour chaque territoire.