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])
)
)
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 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 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.