Partager via


GENERATEALL

S’applique à :Colonne calculéeTable calculéeMesureCalcul de visuel

Retourne une table avec le produit cartésien entre chaque ligne de table1 et la table résultant de l’évaluation de 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 table résultant de l’évaluation de table2 dans le contexte de la ligne actuelle de table1

Remarques

  • Si l’évaluation de table2 pour la ligne actuelle de table1 retourne une table vide, alors la ligne actuelle de table1 sera incluse dans les résultats et les colonnes correspondant à table2 auront des valeurs Null pour cette ligne. Ceci diffère de la fonction GENERATE() qui n’inclut pas la ligne actuelle de table1 dans les résultats.

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

  • Cette fonction n’est pas prise en charge pour une utilisation en mode DirectQuery quand elle est utilisée dans des colonnes calculées ou des règles de sécurité au niveau des lignes (RLS).

Exemple

Dans l’exemple suivant, l’utilisateur souhaite obtenir une table de synthèse des ventes par région et par catégorie de produit pour le réseau de revendeurs comme la table suivante :

SalesTerritory[SalesTerritoryGroup] ProductCategory[ProductCategoryName] [Reseller Sales]
Europe Accessories $ 142,227.27
Europe Bikes $ 9,970,200.44
Europe Clothing $ 365,847.63
Europe Components $ 2,214,440.19
N/A Accessories
N/A Bikes
N/A Clothing
N/A Components
Amérique du Nord Accessories $ 379,305.15
Amérique du Nord Bikes $ 52,403,796.85
Amérique du Nord Clothing $ 1,281,193.26
Amérique du Nord Components $ 8,882,848.05
Pacifique Accessories $ 12,769.57
Pacifique Bikes $ 710,677.75
Pacifique Clothing $ 22,902.38
Pacifique Composants $ 108,549.71

La formule suivante génère la table ci-dessus :

GENERATEALL(  
SUMMARIZE(SalesTerritory, SalesTerritory[SalesTerritoryGroup])  
,SUMMARIZE(ProductCategory
, [ProductCategoryName]  
, "Reseller Sales", SUMX(RELATEDTABLE(ResellerSales_USD), ResellerSales_USD[SalesAmount_USD])  
)  
)  
  1. La première instruction SUMMARIZE génère une table des groupes de secteurs, où chaque ligne est un groupe de secteurs comme ceux indiqués ci-dessous :

    SalesTerritory[SalesTerritoryGroup]
    Amérique du Nord
    Europe
    Pacifique
    N/A
  2. La deuxième instruction SUMMARIZE génère une table de groupes de catégories de produit avec les ventes des revendeurs pour chaque groupe comme indiqué ci-dessous :

    ProductCategory[ProductCategoryName] [Reseller Sales]
    Bikes $ 63,084,675.04
    Composants $ 11,205,837.96
    Clothing $ 1,669,943.27
    Accessories $ 534,301.99
  3. Toutefois, si vous évaluez la table ci-dessus dans le contexte de chaque ligne de la table des groupes de secteurs, vous obtenez des résultats différents pour chaque secteur.