Поделиться через


TOPN

применяется:вычисляемый столбецвычисляемой таблицыизмерениевизуального вычисления

Возвращает верхние N-строки указанной таблицы.

Синтаксис

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

Параметры

Параметр Определение
N_Value Количество возвращаемых строк. Любое выражение DAX, возвращающее скалярное значение, где выражение вычисляется несколько раз (для каждой строки или контекста). См. примечания, чтобы лучше понять, когда количество возвращаемых строк может превышать n_value.
Table Любое выражение DAX, возвращающее таблицу данных, из которой извлекаются верхние строки n. Сведения о том, когда возвращается пустая таблица, см. в разделе "Примечания".
OrderBy_Expression (Необязательно) Любое DAX выражение, в котором значение результата используется для сортировки таблицы и оценки для каждой строки table.
Order (Необязательно) Значение, указывающее, как сортировать значения OrderBy_Expression:

- 0 (ноль) или FALSE. Сортировка по убыванию значений Order. Значение по умолчанию, если параметр Order опущен.

- 1 или TRUE. Ранжирует в порядке возрастания OrderBy.

Возвращаемое значение

Таблица с верхними строками N Table или пустой таблицей, если N_Value равно 0 (ноль) или меньше. Строки не сортируются в определенном порядке.

Замечания

  • Если в Order_By значениях имеется галстук, в строке N-го таблицы возвращаются все привязанные строки. Затем при наличии связей в N-й строке функция может возвращать больше n строк.

  • Если N_Value равно 0 (ноль) или меньше, TOPN возвращает пустую таблицу.

  • TOPN не гарантирует порядок сортировки результатов.

  • Эта функция не поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах или правилах безопасности на уровне строк (RLS).

Пример

Следующая формула меры возвращает первые 10 проданных продуктов по сумме продаж.

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