Partager via


Fonction TOPN (DAX)

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

  • n_value
    Nombre de lignes à retourner. Toute expression DAX qui retourne une valeur scalaire unique, où l'expression doit être évaluée plusieurs fois (pour chaque ligne/contexte).

    Consultez la section Notes pour comprendre les circonstances dans lesquelles le nombre de lignes retourné peut éventuellement être supérieur à n_value.

    Consultez la section Notes pour comprendre les circonstances dans lesquelles une table vide est retournée.

  • table
    Toute expression DAX qui retourne une table de données à partir de laquelle les « n » premières lignes sont à extraire.

  • orderBy_expression
    (Facultatif) Toute expression DAX où la valeur de résultat est utilisée pour trier la table et est évaluée pour chaque ligne de table.

  • order
    (Facultatif) Valeur qui spécifie le mode de tri des valeurs de orderBy_expression, croissant ou décroissant :

    valeur

    autre valeur

    Description

    0 (zéro)

    FALSE

    Tri dans l'ordre décroissant des valeurs de order_by.

    Il s'agit de la valeur par défaut lorsque le paramètre order est omis.

    1

    TRUE

    Classement dans l'ordre croissant des valeurs de order_by.

Valeur de retour

Table avec les N premières lignes de table ou table vide si n_value est inférieur ou égal à 0 (zéro). Les lignes ne sont pas nécessairement triées dans un ordre particulier.

Notes

  • En cas d'égalité entre des valeurs de order_by, à la N-ième ligne de la table, toutes les lignes à égalité sont retournées. Ensuite, lorsqu'il y a égalité à la N-ième ligne, la fonction peut retourner plus de n lignes.

  • Si n_value est inférieur ou égal à 0 (zéro), TOPN retourne une table vide.

  • TOPN ne garantit pas l'ordre de tri des résultats.

Exemple

L'exemple suivant crée une mesure avec les ventes des 10 produits les plus vendus.

=SUMX(TOPN(10, SUMMARIZE(Product, [ProductKey], “TotalSales”, SUMX(RELATED(InternetSales_USD[SalesAmount_USD]), InternetSales_USD[SalesAmount_USD]) + SUMX(RELATED(ResellerSales_USD[SalesAmount_USD]), ResellerSales_USD[SalesAmount_USD]))