Partager via


TOPN

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

Retourne les N premières lignes de la table spécifiée.

Syntaxe

TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…])  

Paramètres

Paramètre Définition
N_Value Nombre de lignes à retourner. Toute expression DAX qui retourne une valeur scalaire où l’expression doit être évaluée plusieurs fois (pour chaque ligne/contexte). Consultez Remarques pour mieux comprendre quand le nombre de lignes retournées pourrait être supérieur à n_value.
Table de charge de travail Toute expression DAX qui retourne une table de données à partir de laquelle extraire les « n » premières lignes. Consultez Remarques pour mieux comprendre quand une table vide est retournée.
OrderBy_Expression (Facultatif) Toute expression DAX où la valeur obtenue est utilisée pour trier la table et évaluée pour chaque ligne de la table.
JSON (Facultatif) Une valeur qui spécifie comment trier les valeurs OrderBy_Expression :

- 0 (zéro) ou FALSE. Trie dans l'ordre décroissant des valeurs de Commande. Valeur par défaut lorsque le paramètre Commande est omis.

- 1 ou TRUE. Rangs dans l'ordre croissant de OrderBy.

Valeur retournée

Une table avec les N premières lignes de Table ou une table vide si N_Value est 0 (zéro) ou moins. Les lignes ne sont pas triées dans un ordre particulier.

Notes

  • S'il y a une égalité, dans les valeurs Order_By, à la N-ième ligne de la table, toutes les lignes liées sont renvoyées. Ensuite, lorsqu’il y a des liens à la N-ième ligne, la fonction peut retourner plus de n lignes.

  • Si N_Value est 0 (zéro) ou moins, TOPN renvoie une table vide.

  • TOPN ne garantit aucun ordre de tri des résultats.

  • 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

La formule de mesure suivante renvoie les 10 produits les plus vendus par montant des ventes.

= SUMX(
        TOPN(
            10, 
            SUMMARIZE(
                    InternetSales, 
                    InternetSales[ProductKey], 
                    "TotalSales", SUM(InternetSales[SalesAmount])
            ),
            [TotalSales], DESC
        ),
        [TotalSales]
)