Функции за сортиране и сортиране по колони

Отнася се за: Canvas apps Desktop flows Model-driven apps Power Platform CLI

Сортира таблица.

Бележка

Командите PAC CLI pac power-fx не поддържат функцията SortByColumns .

Описание

Функцията Sort сортира таблица въз основа на формула.

Формулата се оценява за всеки запис на таблицата и резултатите се използват за сортиране на таблицата. Формулата трябва да доведе до число, низ или булева стойност; не може да доведе до таблица или запис.

Полетата от записа, които се обработват в момента, са достъпни във формулата. Използвайте оператора ThisRecord или просто посочете полета по име, както при всяка друга стойност. Операторът As може също така да бъде използван за задаване на име на записа, който се обработва, което може да помогне вашата формула да стане по-лесна за разбиране и вложените записи да са достъпни. За повече информация вижте примерите по-долу и работа с обхвата на запис.

За да сортирате първо по една колона и след това от друга, вграждате Sort формула в рамките на друга. Например, можете да използвате тази формула, за да сортирате таблица Контакти първо по колона Фамилия и след това по колона Собствено име: Sort( Sort( Contacts, LastName ), FirstName )

Функцията SortByColumns може също да се използва за сортиране на таблица въз основа на една или повече колони.

Списък с параметри за SortByColumns предоставя имената на колоните за сортиране и посоката на сортиране на колона. Сортирането се извършва в реда на параметрите (сортирани първо по първата колона, след това втората и така нататък). Имената на колоните са посочени като низове, изискващи двойни кавички, ако са директно включени в списъка с параметри. Например SortByColumns( CustomerTable, "LastName" ).

Можете да комбинирате SortByColumns с Падащо меню или списъчно поле контрола, за да може потребителите да изберат по коя колона да сортират.

В допълнение към сортирането възходящо или низходящо, SortByColumns може да сортира въз основа на таблица със стойности на една колона. Например, можете да сортирате записа въз основа на името на ден от седмицата, като предоставите [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] като ред за сортиране. Всички записи, които имат Monday" ще станат първи, последвани от Tuesday, и така нататък. Намерени записи, които не се появяват в таблицата за сортиране, се поставят в края на списъка.

Таблици е стойност в Power Apps, точно като низ или число. Те могат да бъдат предадени и върнати от функциите. Sort и SortByColumn не променят таблица; вместо това те вземат таблица като аргумент и връщат нова таблица, която е била сортирана. Вижте Работа с таблици за повече подробности.

Делегиране

Когато е възможно, Power Apps ще делегира операции за филтриране и сортиране на източника на данни и ще прелиства резултатите по заявка. Например, когато стартирате приложение, което показва контрола Галерия, попълнена с данни, първоначално само първият набор от записи ще бъде въведен на устройството. Докато потребителят превърта, се въвеждат допълнителни данни от източника на данни. Резултатът е по-кратко време на стартиране на приложението и достъп до много големи набори от данни.

Обаче делегирането може да не възможно винаги. Източниците на данни са различни в зависимост от функциите и операторите, които поддържат с делегиране. Ако не е възможно пълно делегиране на формула, средата за създаване ще маркира частта, която не може да се делегира, с предупреждение. Когато е възможно, обмислете промяна на формулата, за да избегнете функциите и операторите, които не могат да се делегират. Списъкът за делегиране изброява подробно кои източници на данни и операции могат да се делегират.

Ако делегирането не е възможно, Power Apps ще извлече само малък набор от записи, с които да работи локално. Функциите за филтриране и сортиране ще работят на ограничен набор от записи. Наличното в галерията може да не е пълно, което може да обърка потребителите.

Вижте прегледа на делегирането за повече информация.

Синтаксис

Sort( Table, Formula [, SortOrder ] )

  • Table – Задължително. Таблица за сортиране.
  • Formula – Задължително. Тази формула се оценява за всеки запис на таблицата и резултатите се използват за сортиране на таблицата. Можете да посочите колони в таблицата.
  • SortOrder - По желание. Посочете SortOrder.Descending, за да сортирате таблицата в низходящ ред. Стойността по подразбиране е SortOrder.Ascending.

SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )

  • Table – Задължително. Таблица за сортиране.

  • ColumnName(s) - Задължително. Имената на колоните да се сортират по низове.

  • SortOrder(s) - Незадължително. SortOrder.Ascending или SortOrder.Descending. По подразбиране е SortOrder.Ascending. Ако са множество ColumnNames са предоставени, всички освен последната колона трябва да включват SortOrder.

    Бележка

    За SharePoint и източници на данни в Excel, които съдържат имена на колони с интервали, укажете всеки интервал като "_x0020_". Например, посочете "Column Name" като "Column_x0020_Name".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – Задължително. Таблица за сортиране.

  • ColumnName - Задължително. Името на колоните да се сортират по низове.

  • SortOrderTable - Задължително. Таблица със стойности на единична колона, която се сортира по.

    Бележка

    За SharePoint и източници на данни в Excel, които съдържат имена на колони с интервали, укажете всеки интервал като "_x0020_". Например, посочете "Column Name" като "Column_x0020_Name".

Примери

За следващите примери ще използваме IceCreamизточник на данни, който съдържа данните в тази таблица:

Пример за сладолед.

Формула Описание Резултат
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Сортира IceCream по неговата колона Flavor. Колоната Flavor съдържа низове, така че таблицата е сортирана по азбучен ред. По подразбиране редът на сортиране е възходящ. Сортирано по азбучен ред.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Сортира IceCream по неговата колона Quantity. Колоната Quantity съдържа числа, така че таблицата е сортирана числово. По подразбиране редът на сортиране е възходящ. Сортирано числово.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Сортира IceCream по неговата колона Quantity. Колоната Quantity съдържа числа, така че сортирането се прави по номера. Редът за сортиране е определен като низходящ. Сортирано числово и низходящо.
Sort( IceCream, Quantity + OnOrder ) Сортира IceCream по сумата от неговите колони Quantity и OnOrder за всеки запис поотделно. Сумата е число, така че таблицата е сортирана числово. По подразбиране редът на сортиране е възходящ. Тъй като ние сортираме по формула, а не по сурови стойности на колоните, няма еквивалентно използване SortByColumns. Сортирано числово и възходящо.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Количество", SortOrder.Ascending )
Сортира Сладолед първо от неговата колона OnOrder и след това от неговата колона Quantity. Обърнете внимание, че „Шам фъстък“ се издигна над „Ванилия“ в първия вид, базиран на OnOrder и след това заедно се преместиха на подходящото си място въз основа на Quantity. Сортирано с шам-фъстък над ванилия.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Сортирайте Сладолед по неговата колона Flavor на базата на таблицата с една колона, съдържаща „Шам-фъстък“ и „Ягода“. Записи, които имат Flavor на "Pistachio" ще се появи първо в резултата, последван от записи, които съдържат "Ягода". За стойности в колона Flavor, които не са съвпадащи, като "Ванила", те ще се появят след съвпадащите елементи. Сортирано с шам-фъстък над ягода.

Стъпка по стъпка

За да стартирате сами тези примери, създайте източник на данни IceCream като колекция:

  1. Добавете бутон и задайте свойството OnSelect на тази формула:
    ClearCollect( IceCream, { Flavor: "Chocolate", Quantity: 100, OnOrder: 150 }, { Flavor: "Vanilla", Quantity: 200, OnOrder: 20 }, { Flavor: "Strawberry", Quantity: 300, OnOrder: 0 }, { Flavor: "Mint Chocolate", Quantity: 60, OnOrder: 100 }, { Flavor: "Pistachio", Quantity: 200, OnOrder: 10 } )
  2. Прегледайте приложението, изберете бутона, след това натиснете Esc, за да се върнете към работното пространство по подразбиране.
  3. Изберете Колекции в менюто Файл за показване на току-що създадената от вас колекция и след това натиснете Esc, за да се върнете към работното пространство по подразбиране.

Сортиране

  1. Добавете друг бутон и задайте свойството му OnSelect на тази формула:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Предишната формула създава втора колекция, наречена SortByFlavor, която съдържа същите данни като Сладолед. Новата колекция обаче съдържа данните, сортирани по азбучен ред по колона вкус във възходящ ред.

  2. Натиснете F5, изберете новия бутон и след това натиснете Esc.

  3. Изберете Колекции в менюто Файл за показване на двете колекции и след това натиснете Esc, за да се върнете към работното пространство по подразбиране.

  4. Повторете последните три стъпки, но променете името на колекцията, която искате да създадете, и заменете Sort формула с различна формула от таблицата с примери по-рано в този раздел, която използва Sort.

SortByColumns

  1. Добавете друг бутон и задайте свойството му OnSelect на тази формула:
    ClearCollect( SortByQuantity, SortByColumns( Сладолед, "Количество", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Предишната формула създава трета колекция, наречена SortByQuantity, която съдържа същите данни като Сладолед. Новата колекция обаче съдържа данните, сортирани числово по Quantity колона във възходящ ред и след това от вкус колона в низходящ ред.

  2. Натиснете F5, изберете новия бутон и след това натиснете Esc.

  3. Изберете Колекции в менюто Файл за показване на всички три колекции и след това натиснете Esc, за да се върнете към работното пространство по подразбиране.

  4. Повторете последните три стъпки, но променете името на колекцията, която искате да създадете, и заменете SortByColumns формула с различна формула от таблицата с примери по-рано в този раздел, която използва SortByColumns.