TOPN 函數 (DAX)

傳回指定之資料表的前 N 個資料列。

語法

TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])

參數

  • n_value
    要傳回的資料列數目。 它是傳回單一純量值的任何 DAX 運算式,而系統將多次評估此運算式 (針對每個資料列/內容)。

    若要了解傳回的資料列數目可能大於 n_value 的時機,請參閱<備註>一節。

    若要了解傳回空白資料表的時機,請參閱<備註>一節。

  • table
    傳回資料表 (從中擷取前 ‘n’ 個資料列) 的任何 DAX 運算式。

  • orderBy_expression
    (選擇性) 任何 DAX 運算式,其結果值會用來排序資料表,而且系統將針對 table 的每個資料列評估此運算式。

  • order
    (選擇性) 指定要如何排序 orderBy_expression 值的值 (遞增或遞減):

    value

    替代值

    說明

    0 (零)

    FALSE

    order_by 值的遞減順序排序。

    這是省略 order 參數時的預設值。

    1

    TRUE

    order_by 的遞增順序排列次序。

傳回值

含有 table 中前 N 個資料列的資料表,如果 n_value 為 0 (零) 或更小,則為空白資料表。 資料列不一定會按照任何特定順序排序。

備註

  • 如果資料表中第 N 個資料列的 order_by 值存在繫結,則系統會傳回所有繫結的資料列。 此外,當第 N 個資料列存在繫結時,此函數可能會傳回超過 n 個資料列。

  • 如果 n_value 為 0 (零) 或更小,則 TOPN 會傳回空白資料表。

  • TOPN 不保證結果的任何排序次序。

範例

下列範例會使用前 10 項暢銷產品的銷售量來建立量值。

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