Partager via


GENERATEALL

s’applique à :colonne calculéetable calculéemesurecalcul visuel

Retourne une table avec le produit cartesien entre chaque ligne de table1 et la table qui résulte de l’évaluation table2 dans le contexte de la ligne actuelle de table1.

Syntaxe

GENERATEALL(<table1>, <table2>)  

Paramètres

Terme Définition
table1 Toute expression DAX qui retourne une table.
table2 Toute expression DAX qui retourne une table.

Valeur de retour

Table avec le produit cartésien entre chaque ligne de table1 et la table qui résulte de l’évaluation table2 dans le contexte de la ligne actuelle de table1

Remarques

  • Si l’évaluation de table2 pour la ligne active dans table1 retourne une table vide, la ligne actuelle de table1 sera incluse dans les résultats et les colonnes correspondant à table2 aura des valeurs null pour cette ligne. Cela est différent de GENERATE() où la ligne actuelle de table1 n'pas être incluse dans les résultats.

  • Tous les noms de colonnes de table1 et table2 doivent être différents ou une erreur est retournée.

  • Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées ou les 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 et catégorie de produit 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 $
NA Accessoires
NA Vélos
NA Vêtement
NA Composants
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 :

GENERATEALL(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. Le premier SUMMARIZE produit une table de groupes de territoires, où chaque ligne est un groupe de territoires, comme ceux répertoriés ci-dessous :

    SalesTerritory[SalesTerritoryGroup]
    Amérique du Nord
    Europe
    Pacifique
    NA
  2. Le deuxième SUMMARIZE produit un tableau de groupes de catégories de produits avec les ventes de revendeurs 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 la table ci-dessus et évaluez la table dans le contexte de chaque ligne de la table groupes de territoires, vous obtenez des résultats différents pour chaque territoire.