Del via


Sort og SortByColumns funksjoner

Gjelder for: Lerretsapper Copilot Studio Desktop flyter Modelldrevne apper Power Platform CLI Dataverse-funksjoner Power Pages

Sorterer en tabell.

Obs!

PAC CLI pac power-fx-kommandoer støtter SortByColumns ikke funksjonen.

Description

Funksjonen Sort sorterer en tabell basert på en formel.

Formelen evalueres for hver post i tabellen, og resultatene brukes til å sortere tabellen. Formelen må resultere i et tall, en streng eller en boolsk verdi. Den kan ikke resultere i en tabell eller oppføring.

Feltene for oppføringen som blir behandlet er tilgjengelige i formelen. Bruk ThisRecord-operatoren eller bare referer til felt etter navn, på samme måte som andre verdier. As-operatoren kan også brukes til å gi navn til oppføringen som blir behandlet, noe som kan gjøre det enklere å forstå og ta i bruk nestede oppføringer. Hvis du vil ha mer informasjon, kan du se eksemplene nedenfor og arbeide med oppføringsomfang.

Hvis du først vil sortere etter én kolonne og deretter etter en annen, bygger du inn en formel i en Sort annen. Du kan for eksempel bruke denne formelen til å sortere en Kontakter-tabell først etter en Etternavn-kolonne og deretter etter en FirstName-kolonne : Sort( ( SortKontakter, Etternavn ), Fornavn )

Funksjonen SortByColumns kan også brukes til å sortere en tabell basert på én eller flere kolonner.

Parameterlisten inneholder SortByColumns navnene på kolonnene som skal sorteres etter og sorteringsretningen per kolonne. Sorteringen utføres i samme rekkefølge som parameterne (sortert etter den første kolonnen, og deretter den andre og så videre). Kolonnenavn er angitt som strenger, som krever doble anførselstegn hvis de er direkte inkludert i parameterlisten. Eksempel: SortByColumns( CustomerTable, "LastName" ).

Du kan kombinere SortByColumns med en rullegardin- eller listekontroll for å gjøre det mulig for brukere å velge hvilken kolonne de skal sortere etter.

I tillegg til å sortere stigende eller synkende, SortByColumns kan du sortere basert på en enkelt kolonnetabell med verdier. Du kan for eksempel sortere poster basert på navnet på en ukedag ved å oppgi [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] som sorteringsrekkefølge. Alle poster som inneholder Monday kommer først, etterfulgt av Tuesday og så videre. Poster som ble funnet, som ikke vises i sorteringstabellen, plasseres på slutten av listen.

Tabeller er en verdi i Power Apps, akkurat som en streng eller et tall. De kan sendes til og returneres fra funksjoner. Sort og SortByColumn endrer ikke en tabell. I stedet tar de en tabell som et argument og returnerer en ny tabell som er sortert. Hvis du vil ha mer informasjon, kan du se arbeide med tabeller.

Delegering

Når det er mulig, vil Power Apps delegere filtrerings- og sorteringoperasjoner til datakilden og siden gjennom resultatene ved behov. Når du for eksempel starter en app som viser en Galleri-kontroll fylt med data, blir bare det første settet med oppføringer overført til enheten til å begynne med. Når brukeren ruller, hentes flere data fra datakilden. Resultatet er raskere oppstartstid for appen og tilgang til et svært store datasett.

Det er imidlertid ikke alltid mulig å delegere. Datakilder varierer avhengig av hvilke funksjoner og operatorer de støtter med delegering. Hvis fullstendig delegering av en formel ikke er mulig, vil redigeringsmiljøet vise en advarsel for delen som ikke kan delegeres. Vurder å endre formelen når det er mulig, for å unngå funksjoner og operatorer som ikke kan delegeres. Delegeringslisten inneholder informasjon om hvilke datakilder og som kan delegeres.

Hvis det ikke er mulig å delegere, vil Power Apps bare hente et lite sett med oppføringer for å arbeide lokalt. Filtrerings- og sorteringsfunksjoner fungerer på et mindre sett med oppføringer. Det som er tilgjengelig i Galleri er kanskje ikke den fullstendige historikken, og dette kan være forvirrende for brukere.

Hvis du vil ha mer informasjon, kan du se delegeringsoversikten.

Syntaks

Sort( Tabell, Formel [, SortOrder ] )

  • Tabell – Obligatorisk. Tabell som skal sorteres.
  • Formel - Påkrevd. Denne formelen evalueres for hver post i tabellen, og resultatene brukes til å sortere tabellen. Du kan referere til kolonner i tabellen.
  • SortOrder - Valgfritt. Angi SortOrder.Descending for å sortere tabellen i synkende rekkefølge. SortOrder.Ascending er standardverdien.

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

  • Tabell – Obligatorisk. Tabell som skal sorteres.

  • ColumnNames – Obligatorisk. Kolonnenavnene som skal sorteres etter, som strenger.

  • SortOrders - Valgfritt. SortOrder.Ascending eller SortOrder.Descending. SortOrder.Ascending er standard. Hvis flere ColumnNames leveres, må alle unntatt den siste kolonnen inneholde en SortOrder.

    Obs!

    Du må spesifisere hvert mellomrom med "_x0020_" for SharePoint- og Excel-datakilder som inneholder kolonnenavn med mellomrom. Du kan for eksempel angi "ColumnName" som "Column_x0020_Name".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Tabell – Obligatorisk. Tabell som skal sorteres.

  • ColumnName – Obligatorisk. Kolonnenavnet som skal sorteres etter, som strenger.

  • SortOrderTable - Obligatorisk. Enkeltkolonnetabell av verdiene som skal sorteres etter.

    Obs!

    Du må spesifisere hvert mellomrom med "_x0020_" for SharePoint- og Excel-datakilder som inneholder kolonnenavn med mellomrom. Du kan for eksempel angi "ColumnName" som "Column_x0020_Name".

Eksempler

Vi bruker IceCream-datakilden, som inneholder dataene i denne tabellen, for eksemplene nedenfor:

Eksempel med IceCream.

Formel Description Resultat
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Sorterer IceCream etter Flavor-kolonnen. Flavor-kolonnen inneholder strenger, så tabellen er sortert alfabetisk. Sorteringsrekkefølgen er stigende som standard. Alfabetisk sortert.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Sorterer IceCream etter Quantity-kolonnen. Quantity-kolonnen inneholder tall, så tabellen er sortert numerisk. Sorteringsrekkefølgen er stigende som standard. Sortert numerisk.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Sorterer IceCream etter Quantity-kolonnen. Quantity-kolonnen inneholder tall, så sorteringen er numerisk. Sorteringsrekkefølgen er angitt som synkende. Sortert numerisk og synkende.
Sort( IceCream, Quantity + OnOrder ) Sorterer IceCream med summen av Quantity- og OnOrder-kolonnene enkeltvis for hver post. Summen er et tall, så tabellen er sortert numerisk. Sorteringsrekkefølgen er stigende som standard. Siden vi sorterer etter en formel og ikke etter rå kolonneverdier, er det ingen tilsvarende bruk.SortByColumns Sortert numerisk og stigende.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
Sorterer IceCream først etter OnOrder-kolonnen og deretter etter Quantity-kolonnen. Vær oppmerksom på at "Pistachio" var plassert over "Vanilla" i den første sorteringen, basert på OnOrder, og deretter ble de flyttet sammen til sine riktige plasseringer basert på Quantity. Sortert med Pistachio over Vanilla.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Sorterer IceCream etter Flavor-kolonnen basert på enkeltkolonnetabellen som inneholder Pistachio og Strawberry. Poster som har "Pistachio" for Flavor, vises først i resultatet, etterfulgt av poster som inneholder "Strawberry". Verdier i Flavor-kolonnen som ikke er et treff, for eksempel "Vanilla", vises etter elementene som samsvarte. Sortert med Pistachio over Strawberry.

Trinnvis

Hvis du vil kjøre disse eksemplene selv, kan du opprette datakilden IceCream som en samling:

  1. Legg til en knapp, og sett knappens OnSelect-egenskap til denne formelen:
    ClearCollect( IceCream, { Smak: "Sjokolade", Antall: 100, På bestilling: 150 }, { Smak: "Vanilje", Antall: 200, På bestilling: 20 }, { Smak: "Jordbær", Antall: 300, På bestilling: 0 }, { Smak: "Mint Chocolate", Antall: 60, På bestilling: 100 }, { Smak: "Pistasj", Antall: 200, På bestilling: 10 } )
  2. Forhåndsvis appen, velg knappen og trykk deretter på ESC for å gå tilbake til standard arbeidsområde.
  3. Velg SamlingerFil-menyen for å vise samlingen som du nettopp opprettet, og trykk deretter på ESC for å gå tilbake til standard arbeidsområde.

Sort

  1. Legg til en ny knapp, og angi OnSelect-egenskapen til denne formelen:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Formelen over oppretter en annen samling, kalt SortByFlavor, som inneholder de samme dataene som Ice Cream. Den nye samlingen inneholder imidlertid dataene sortert alfabetisk etter Flavor-kolonnen i stigende rekkefølge.

  2. Trykk på F5, velg den nye knappen, og trykk deretter på ESC.

  3. Velg SamlingerFil-menyen for å vise begge samlingene, og trykk deretter på ESC for å gå tilbake til standard arbeidsområde.

  4. Gjenta de tre siste trinnene, men endre navnet på samlingen du vil opprette, og erstatt Sort formelen med en annen formel enn tabellen med eksempler tidligere i denne delen som bruker Sort.

SortByColumns

  1. Legg til en ny knapp, og angi OnSelect-egenskapen til denne formelen:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Formelen over oppretter en tredje samling, kalt SortByQuantity, som inneholder de samme dataene som Ice Cream. Den nye samlingen inneholder imidlertid dataene sortert numerisk etter Quantity-kolonnen i stigende rekkefølge, og deretter etter Flavor-kolonnen i synkende rekkefølge.

  2. Trykk på F5, velg den nye knappen, og trykk deretter på ESC.

  3. Velg SamlingerFil-menyen for å vise de tre samlingene, og trykk deretter på ESC for å gå tilbake til standard arbeidsområde.

  4. Gjenta de tre siste trinnene, men endre navnet på samlingen du vil opprette, og erstatt SortByColumns formelen med en annen formel enn tabellen med eksempler tidligere i denne delen som bruker SortByColumns.