Partager via


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])
)
)
  1. 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
  2. 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 $
  3. 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.