Funcions Ordena i SortByColumns

S'aplica a: Aplicacions de llenç Fluxos d'escriptori Aplicacions Power Platform basades en models CLI

Ordena una taula.

Nota

Les ordres PAC CLI pac power-fx no admeten la funció SortByColumns.

Descripció

La funció Sort ordena una taula en funció d'una fórmula.

La fórmula s'avalua per a cada registre de la taula i els resultats s'utilitzen per ordenar la taula. La fórmula ha de tenir com a resultat un nombre, una cadena o un valor booleà; no pot resultar en una taula o un registre.

Els camps del registre que s’està processant actualment estan disponibles dins de la fórmula. Utilitzeu l’operador ThisRecord o simplement els camps de referència per nom com si fos qualsevol altre valor. L’operador As també es pot utilitzar per nomenar el registre que s’està processant i que pot ajudar-vos a fer que la fórmula sigui més fàcil d’entendre i fer accessible els registres incrustats. Per obtenir més informació, vegeu els exemples següents i la secció Treballar amb l’àmbit de registre.

Per ordenar primer per una columna i, a continuació, per una altra, heu d'incrustar una fórmula Sort en una altra. Per exemple, podeu utilitzar aquesta fórmula per ordenar una taula Contactes primer per la columna LastName i després per la columna FirstName: Sort(Sort(Contactes, LastName), FirstName)

La funció SortByColumns també es pot utilitzar per ordenar una taula en funció d'una o més columnes.

La llista de paràmetres per a SortByColumns proporciona els noms de les columnes pels quals s'ordenarà i la direcció d'ordenació per columna. L'ordenació es realitza per ordre dels paràmetres (ordenats primer per la primera columna, seguida de la segona, etcètera). Els noms de les columnes s'especifiquen com a cadenes i necessiten cometes dobles si s'inclouen directament a la llista de paràmetres. Per exemple, SortByColumns(CustomerTable, "LastName").

Podeu combinar SortByColumns amb un control Desplegable o Quadre de llista per permetre que els usuaris seleccionin per quina columna s'ordenarà.

A banda d'ordenar de manera ascendent o descendent, SortByColumns pot ordenar en funció d'una taula d'una sola columna de valors. Per exemple, podeu ordenar el registre segons el nom d'un dia de la setmana si proporcioneu ["dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte", "diumenge"] com a criteri d'ordenació. Tots els registres que tenen dilluns es mostraran en primer lloc, seguits dels que mostren dimarts, etcètera. Els registres trobats que no apareixen a la taula d'ordenació es col·loquen al final de la llista.

Les taules són un valor del Power Apps, igual que una cadena o un número. Es poden passar a funcions i retornar-ne. Sort i SortByColumn no modifiquen una taula: agafen una taula com a argument i tornen una taula nova ordenada. Vegeu Treballar amb taules per obtenir més informació.

Delegació

Si és possible, el Power Apps delegarà a petició les operacions de filtratge i ordenació a la font de dades i pàgina a través dels resultats. Per exemple, quan inicieu una aplicació que mostra un control Galeria ple de dades, només el primer conjunt de registres es portarà inicialment-los al dispositiu. A mesura que l'usuari desplaça la pàgina, es mostraran dades addicionals de la font de dades. D'això en resulta un temps d'inici més ràpid per a l'aplicació i un accés a conjunts de dades molt grans.

Tanmateix, la delegació no sempre és possible. Les fonts de dades varien segons les funcions i operadors als quals donen suport amb la delegació. Si la delegació completa d'una fórmula no és possible, l'entorn de creació marcarà la part corresponent que no es pot delegar amb un advertiment. Si és possible, considereu la possibilitat de canviar la fórmula per evitar les funcions i els operadors que no es poden delegar. La llista de delegació indica les fonts de dades i les operacions que es poden delegar.

Si la delegació no és possible, el Power Apps extraurà només un petit conjunt de registres per treballar-hi localment. Les funcions de filtratge i ordenació funcionaran en un conjunt reduït de registres. És possible que el contingut de la Galeria no sigui exhaustiu, fet que podria confondre els usuaris.

Vegeu la informació general sobre la delegació per obtenir més informació.

Sintaxi

Sort(Taula, Fórmula, [SortOrder])

  • Taula: obligatori. Taula que s'ordenarà.
  • Fórmula: obligatori. Aquesta fórmula s'avalua per a cada registre de la taula i els resultats s'utilitzen per ordenar la taula. Podeu fer referència a columnes de la taula.
  • SortOrder: opcional. Especifiqueu SortOrder.Descending per ordenar la taula per ordre descendent. SortOrder.Ascending és el valor per defecte.

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

  • Taula: obligatori. Taula que s'ordenarà.

  • ColumnName: obligatori. Els noms de columna que s'ordenaran, com a cadenes.

  • SortOrder: opcional. SortOrder.Ascending o SortOrder.Descending. SortOrder.Ascending és el valor per defecte. Si es proporcionen diversos ColumnNames, totes les columnes tret de la darrera han d'incloure SortOrder.

    Nota

    Per a les fonts de dades del SharePoint i de l'Excel que contenen noms de columna amb espais, especifiqueu cada espai com a "_x0020_". Per exemple, especifiqueu "Nom de columna" com a "Nom_x0020_Columna".

SortByColumns(Taula, ColumnName, SortOrderTable)

  • Taula: obligatori. Taula que s'ordenarà.

  • ColumnName: obligatori. El nom de columna que s'ordenarà, com a cadenes.

  • SortOrderTable: obligatori. Taula de valors d'una columna per la qual s'ordenarà.

    Nota

    Per a les fonts de dades del SharePoint i de l'Excel que contenen noms de columna amb espais, especifiqueu cada espai com a "_x0020_". Per exemple, especifiqueu "Nom de columna" com a "Nom_x0020_Columna".

Exemples

Per als exemples següents, farem servir la font de dadesGelat, que conté les dades d'aquesta taula:

Exemple de gelats

Fórmula Descripció Resultat
Sort(Gelat, Gust)

SortByColumns(Gelat, "Gust")
Ordena Gelat per la columna Gust. La columna Gust conté cadenes, de manera que la taula està ordenada alfabèticament. Per defecte, el criteri d'ordenació és ascendent. Ordenat alfabèticament
Sort(Gelat, Quantitat)

SortByColumns(Gelat, "Quantitat")
Ordena Gelat per la columna Quantitat. La columna Quantitat conté números, de manera que la taula està ordenada numèricament. Per defecte, el criteri d'ordenació és ascendent. Ordenat numèricament
Sort(Gelat, Quantitat, SortOrder.Descending)

SortByColumns(Gelat, "Quantitat", SortOrder.Descending)
Ordena Gelat per la columna Quantitat. La columna Quantitat conté números, de manera que l'ordre és numèric. El criteri d'ordenació s'ha especificat com a descendent. Ordenat numèricament i descendent
Sort(Gelat, Quantitat + OnOrder) Ordena Gelat per la suma de les columnes Quantitat i OnOrder per a cada registre individualment. La suma és un número, de manera que la taula està ordenada numèricament. Per defecte, el criteri d'ordenació és ascendent. Com que classifiquem per fórmula i no per valors de columna sense processar, no hi ha cap equivalent amb SortByColumns. Ordenat numèricament i ascendent
Sort(Sort(Gelat, OnOrder), Quantitat)

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantitat", SortOrder.Ascending )
Ordena Gelat primer per la columna OnOrder i, a continuació, per la columna Quantitat. Fixeu-vos que la columna "Festuc" queda per sobre de "Vainilla" al primer ordre segons OnOrder, però després es desplacen junts al lloc apropiat segons Quantitat. Ordenat amb festuc per sobre de vainilla
SortByColumns(Gelat, "Gust", [ "Festuc", "Maduixa" ] ) Ordena Gelat per la columna Gust segons la taula d'una sola columna que conté "Festuc" i "Maduixa". Els registres que tenen un Gust de "Festuc" es mostraran en primer lloc en el resultat, seguits de registres que contenen "Maduixa". Per als valors de la columna Gust que no coincideixen, com ara "Vainilla", es mostraran després dels elements coincidents. Ordenat amb festuc per sobre de maduixa

Pas a pas

Per executar aquests exemples, creeu la font de dades Gelat com a col·lecció:

  1. Afegiu un botó i definiu-ne la propietat OnSelect a aquesta fórmula:
    ClearCollect(Gelat, {Gust: "Xocolata", Quantitat: 100, OnOrder: 150}, {Gust: "Vainilla", Quantitat: 200, OnOrder: 20}, {Gust: "Maduixa", Quantitat: 300, OnOrder: 0}, {Gust: "Xocolata i menta", Quantitat: 60, OnOrder: 100}, {Gust: "Festuc", Quantitat: 200, OnOrder: 10})
  2. Feu una visualització prèvia de l'aplicació, seleccioneu el botó i, a continuació, premeu Esc per tornar a l'àrea de treball per defecte.
  3. Seleccioneu Col·leccions al menú Fitxer per visualitzar la col·lecció que acabeu de crear i, a continuació, premeu Esc per tornar a l'àrea de treball per defecte.

Ordena

  1. Afegiu un altre botó i definiu-ne la propietat OnSelect a aquesta fórmula:
    ClearCollect(SortByFlavor, Sort(Gelat, Gust))

    La fórmula anterior crea una segona col·lecció, anomenada SortByFlavor, que conté les mateixes dades que Gelat. No obstant això, la nova col·lecció conté les dades ordenades alfabèticament de la columna Gust per ordre ascendent.

  2. Premeu F5, seleccioneu el botó nou i, a continuació, premeu Esc.

  3. Seleccioneu Col·leccions al menú Fitxer per visualitzar totes dues col·leccions i, a continuació, premeu Esc per tornar a l'àrea de treball per defecte.

  4. Repetiu els tres últims passos, però canvieu el nom de la col·lecció que voleu crear i substituïu la fórmula Sort per una fórmula diferent de la taula d'exemples que es mostra anteriorment en aquesta secció que utilitza Sort.

SortByColumns

  1. Afegiu un altre botó i definiu-ne la propietat OnSelect a aquesta fórmula:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantitat", SortOrder.Ascending, "Sabor", SortOrder.Descending ) ) )

    La fórmula anterior crea una tercera col·lecció, anomenada SortByQuantity, que conté les mateixes dades que Gelat. No obstant això, la nova col·lecció conté les dades ordenades numèricament de la columna Quantitat per ordre ascendent i la columna Gust per ordre descendent.

  2. Premeu F5, seleccioneu el botó nou i, a continuació, premeu Esc.

  3. Seleccioneu Col·leccions al menú Fitxer per visualitzar totes tres col·leccions i, a continuació, premeu Esc per tornar a l'àrea de treball per defecte.

  4. Repetiu els tres últims passos, però canvieu el nom de la col·lecció que voleu crear i substituïu la fórmula SortByColumns per una fórmula diferent de la taula d'exemples que es mostra anteriorment en aquesta secció que utilitza SortByColumns.