Funkcja TOPN (język DAX)
Zwraca N wierszy o największej wartości z określonej tabeli.
Składnia
TOPN(<n_value>, <table>, <orderBy_expression>, [<order>[, <orderBy_expression>, [<order>]]…])
Parametry
n_value
Liczba wierszy do zwrócenia. Jest to dowolne wyrażenie języka DAX zwracające pojedynczą wartość skalarną; to wyrażenie jest obliczane wielokrotnie (dla każdego wiersza/kontekstu).W sekcji Uwagi opisano zachowanie funkcji w sytuacji, gdy liczba zwracanych wierszy może być większa niż wartość n_value.
W sekcji Uwagi opisano zachowanie funkcji w sytuacji, gdy jest zwracana pusta tabela.
table
Dowolne wyrażenie języka DAX zwracające tabelę danych, z której ma zostać wyodrębnionych n wierszy o największej wartości.orderBy_expression
(Argument opcjonalny) Dowolne wyrażenie języka DAX, którego wartość wynikowa jest używana do sortowania tabeli i które jest obliczane dla każdego wiersza tabeli table.order
(Argument opcjonalny) Wartość określająca sposób sortowania wartości określonych w argumencie orderBy_expression (rosnąco lub malejąco):wartość
wartość alternatywna
Opis
0 (zero)
Fałsz
Wartości określone w argumencie order_by są sortowane w kolejności malejącej.
Jest to wartość domyślna używana w przypadku pominięcia parametru order.
1
PRAWDA
Wartości określone w argumencie order_by są sortowane w kolejności rosnącej.
Wartość zwracana
Tabela zawierająca N wierszy o największej wartości z tabeli table lub pusta tabela, jeśli wartość n_value jest równa 0 (zero) lub mniej. Wiersze nie muszą być sortowane w określonej kolejności.
Uwagi
Jeśli przy n-tym wierszu tabeli występuje grupa równych wartości (określonych w argumencie order_by), są zwracane wszystkie wiersze należące do tej grupy. Dlatego jeśli przy n-tym wierszu występuje grupa równych wartości, funkcja może zwrócić więcej niż n wierszy.
Jeśli wartość n_value jest równa 0 (zero) lub mniej, funkcja TOPN zwraca pustą tabelę.
Użycie funkcji TOPN nie daje gwarancji posortowania wyników w jakiejkolwiek kolejności.
Przykład
W poniższym przykładzie jest tworzona miara zawierając 10 najlepiej sprzedających się produktów.
=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]))