Sort- ja SortByColumns-funktio

Koskee seuraavia: Pohjaan perustuvat sovellukset Työpöytätyönkulut Mallipohjaiset sovellukset Power Platform CLI

Lajittelee taulukon.

Muistiinpano

PAC CLI pac power-fx -komennot eivät tue SortByColumns-funktiota.

Description

Sort-funktio lajittelee taulukon kaavan perusteella.

Kaava lasketaan taulukon jokaisen tietueen kohdalla, ja tuloksia käytetään taulukon lajittelemiseen. Kaavan tuloksen on oltava numero, merkkijono tai totuusarvo. Se ei voi olla taulukko tai tietue.

Parhaillaan käsiteltävän tietueen kentät ovat kaavan käytettävissä. Käytä ThisRecord-operaattoria tai viittaa kenttiin nimellä muiden arvojen tapaan. As-operaattoria voidaan käyttää myös käsiteltävän tietueen nimeämiseen, mikä voi auttaa tekemään kaavasta helpommin ymmärrettävän ja mahdollistaa sisäkkäisten tietueiden käytön. Lisätietoja on seuraavissa esimerkeissä ja tietueen vaikutusalueen käsittelyn ohjeessa.

Jos haluat lajitella ensin yhden sarakkeen mukaan ja sitten toisen mukaan, upota Sort-kaava toisen kaavan sisään. Voit esimerkiksi käyttää tätä kaavaa Yhteystiedot-taulukon lajittelemiseksi ensin Sukunimi-sarakkeen mukaan ja sitten Etunimi-sarakkeen mukaan: Sort( Sort( Yhteystiedot, Sukunimi ), Etunimi )

SortByColumns-funktiolla voidaan myös lajitella taulukko yhden tai useamman sarakkeen mukaan.

SortByColumns-funktion parametriluettelosta saadaan sarakkeiden nimet, joiden perusteella lajitellaan, sekä sarakekohtainen lajittelusuunta. Lajittelu suoritetaan parametrien määräämässä järjestyksessä (lajitellaan ensin ensimmäisen sarakkeen mukaan, sitten toisen ja niin edelleen). Sarakenimet määritetään merkkijonoiksi, ja ne täytyy merkitä lainausmerkkeihin, jos ne lisätään suoraan parametrilistaan. Esimerkiksi SortByColumns( Asiakastaulukko, "Sukunimi" ).

Voit yhdistää SortByColumns-funktion Drop down- tai List box -ohjausobjektiin, jos haluat että käyttäjät voivat valita, minkä sarakkeen perusteella lajittelu suoritetaan.

Nousevan ja laskevan lajittelun lisäksi SortByColumns voi lajitella arvoja yksittäisen saraketaulukon mukaan. Voit esimerkiksi lajitella tietueen viikonpäivän nimen mukaan lisäämällä lajittelujärjestykseksi [ "Maanantai", "Tiistai", "Keskiviikko", "Torstai", "Perjantai", "Lauantai", "Sunnuntai" ]. Kaikki tietueet, joissa on Maanantai, tulevat ensin, tämän jälkeen Tiistai ja niin edelleen. Löydetyt tietueet, jotka eivät näy lajittelutaulukossa, sijoitetaan luettelon loppuun.

Tables on arvo Power Appsissa, samaan tapaan kuin merkkijono tai numero. Ne voidaan välittää funktioihin ja niitä voidaan palauttaa funktioista. Sort ja SortByColumn eivät muokkaa taulukkoa. Ne käsittelevät sen sijaan taulukkoa argumenttina ja palauttavat uuden, lajitellun taulukon. Lisätietoja on kohdassa taulukoiden käsitteleminen.

Delegointi

Jos mahdollista, Power Apps delegoi suodatus- ja lajittelutoiminnot tietolähteeseen ja näyttää tulokset tarvittaessa sivu kerrallaan. Kun esimerkiksi käynnistät sovelluksen, jossa on Galleria-ohjausobjekti tietoineen, laitteeseen tuodaan aluksi vain ensimmäinen tietuejoukko. Käyttäjän vierittäessä alaspäin tietolähteestä tuodaan lisää tietoja. Näin sovellus käynnistyy nopeammin ja se voi käyttää suuria tietojoukkoja.

Delegointi ei kuitenkaan aina ole mahdollista. Tietolähteiden tukemat delegointitoiminnot ja -operaattorit vaihtelevat. Jos kaavan täysi delegointi ei ole mahdollista, muokkausympäristö merkitsee varoituksella osan, jota ei voi delegoida. Jos mahdollista, muuta kaavaa siten, että se välttää toimintoja ja operaattoreita, joita ei voi delegoida. Delegointiluettelossa on mainittu tietolähteet ja toiminnot, jotka voidaan delegoida.

Jos delegointi ei ole mahdollista, Power Apps noutaa vain pienen joukon tietueita paikallista käsittelyä varten. Suodatus- ja lajittelutoiminnot käsittelevät tietueiden rajattua joukkoa. Jos Galleriassa ei ole kaikkia tietueita, käyttäjät voivat hämmentyä.

Katso lisätietoja delegoinnin yleiskatsauksesta.

Syntaksi

Sort( Table, Formula [, SortOrder ] )

  • Table – Pakollinen. Lajiteltava taulukko.
  • Formula – Pakollinen. Tämä kaava lasketaan taulukon jokaisen tietueen kohdalla, ja tuloksia käytetään taulukon lajittelemiseen. Voit viitata sarakkeisiin taulukon sisällä.
  • SortOrder – Valinnainen. Määritä SortOrder.Descending lajitellaksesi taulukon laskevassa järjestyksessä. SortOrder.Ascending on oletusarvo.

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

  • Table – Pakollinen. Lajiteltava taulukko.

  • ColumnName(s) – Pakollinen. Lajiteltavien sarakkeiden nimet merkkijonoina.

  • SortOrder(s) – Valinnainen. SortOrder.Ascending tai SortOrder.Descending. SortOrder.Ascending on oletusarvo. Jos useita ColumnName(s)-arvoja annetaan, kaikkien paitsi viimeisen sarakkeen tulee sisältää SortOrder.

    Muistiinpano

    Jos SharePoint- ja Excel-tietolähteiden sarakenimissä käytetään välilyöntejä, merkitse jokaisen välilyönnin tilalle "_x0020_". Voit esimerkiksi määrittää Column Name -arvoksi "Sarakkeen_x0020_Nimi".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – Pakollinen. Lajiteltava taulukko.

  • ColumnName – Pakollinen. Lajiteltavan sarakkeen nimi merkkijonoina.

  • SortOrderTable – Pakollinen. Yksisarakkeinen arvotaulukko, jonka mukaan lajitellaan.

    Muistiinpano

    Jos SharePoint- ja Excel-tietolähteiden sarakenimissä käytetään välilyöntejä, merkitse jokaisen välilyönnin tilalle "_x0020_". Voit esimerkiksi määrittää Column Name -arvoksi "Sarakkeen_x0020_Nimi".

Esimerkit

Seuraavissa esimerkeissä käytämme IceCream-tietolähdettä, joka sisältää tämän taulukon tiedot:

IceCream-esimerkki.

Kaava Kuvaus Tulos
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Lajittelee IceCream-tietolähteen sen Flavor-sarakkeen mukaan. Flavor-sarake sisältää merkkijonoja, joten taulukko lajitellaan aakkosjärjestyksessä. Lajittelujärjestys on oletusarvoisesti nouseva. Aakkosjärjestykseen lajiteltu.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Lajittelee IceCream-tietolähteen sen Quantity-sarakkeen mukaan. Quantity-sarake sisältää numeroita, joten taulukko lajitellaan numeerisesti. Lajittelujärjestys on oletusarvoisesti nouseva. Lajiteltu numerojärjestykseen.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Lajittelee IceCream-tietolähteen sen Quantity-sarakkeen mukaan. Quantity-sarake sisältää numeroita, joten lajittelu tehdään numeerisesti. Lajittelujärjestys on määritetty laskevaksi. Numerojärjestyksessä ja laskevassa järjestyksessä.
Sort( IceCream, Quantity + OnOrder ) Lajittelee IceCream-tietolähteen sen Quantity- ja OnOrder-sarakkeiden summan mukaan, kunkin tietueen erikseen. Summa on luku, joten taulukko lajitellaan numeerisesti. Lajittelujärjestys on oletusarvoisesti nouseva. Koska lajittelemme kaavan mukaan emmekä sarakkeen raaka-arvojen mukaan, SortByColumns-funktion käyttämiselle ei ole vastinetta. Numerojärjestyksessä ja nousevassa järjestyksessä.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
Lajittelee IceCream-tietolähteen ensin sen OnOrder-sarakkeen mukaan ja sitten sen Quantity-sarakkeen mukaan. Huomaa, että "Pistachio" nousi kohteen "Vanilla" yläpuolelle ensimmäisessä lajittelussa OnOrder-sarakkeen mukaan, ja yhdessä ne siirtyivät oikeaan paikkaan Quantity-sarakkeessa. Lajiteltu Pistachio Vanillan edellä.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Lajittelee IceCream-tietolähteen sen Flavor-sarakkeen mukaan yksisarakkeisen taulukon pohjalta, joka sisältää kohteet "Pistachio" ja "Strawberry". Tietueet, joiden Flavor on "Pistachio", näkyvät ensimmäisenä tuloksessa. Sen jälkeen näytetään tietueet, jotka sisältävät maun "Strawberry". Flavor-sarakkeen arvot, joille ei löytynyt vastaavuutta, kuten "Vanilla", näkyvät vastanneiden kohteiden jälkeen. Lajiteltu Pistachio Strawberryn edellä.

Vaihe vaiheelta

Voit suorittaa näitä esimerkkejä itse luomalla IceCream-tietolähteen kokoelmana:

  1. Lisää painike ja määritä sen OnSelect-ominaisuudeksi seuraava kaava:
    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. Esikatsele sovellusta, valitse painike ja palaa oletustyötilaan painamalla ESC-näppäintä.
  3. Valitse KokoelmatTiedosto-valikossa näyttääksesi juuri luomasi kokoelman. Palaa oletustyötilaan painamalla Esc-näppäintä.

Sort

  1. Lisää toinen painike ja aseta sen OnSelect-ominaisuudeksi tämä kaava:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Edellinen kaava luo toisen kokoelman, jonka nimi on SortByFlavor, ja se sisältää samat tiedot kuin IceCream. Uusi kokoelma sisältää Flavor-sarakkeen aakkosjärjestyksessä lajitellut tiedot nousevasti.

  2. Paina F5-näppäintä, valitse uusi painike ja paina sitten ESC-näppäintä.

  3. Valitse KokoelmatTiedosto-valikossa näyttääksesi molemmat kokoelmat. Palaa sitten oletustyötilaan painamalla ESC-näppäintä.

  4. Toista kolme edellistä vaihetta, mutta muuta luotavan kokoelman nimeä ja korvaa Sort-kaava eri kaavalla sellaisessa aiemmissa esimerkeissä käytetyssä taulukossa, jossa käytettiin Sort-kaavaa.

SortByColumns

  1. Lisää toinen painike ja aseta sen OnSelect-ominaisuudeksi tämä kaava:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Edellinen kaava luo kolmannen kokoelman, jonka nimi on SortByQuantity. Se sisältää samat tiedot kuin IceCream. Uusi kokoelma sisältää kuitenkin tiedot numeerisesti lajiteltuna Quantity-sarakkeen mukaan nousevassa järjestyksessä, ja sitten Flavor-sarakkeen mukaan laskevassa järjestyksessä.

  2. Paina F5-näppäintä, valitse uusi painike ja paina sitten ESC-näppäintä.

  3. Valitse KokoelmatTiedosto-valikossa näyttääksesi kaikki kolme kokoelmaa. Palaa oletustyötilaan painamalla ESC-näppäintä.

  4. Toista kolme edellistä vaihetta, mutta muuta luotavan kokoelman nimeä ja korvaa SortByColumns-kaava SortByColumns-funktiota käyttävällä eri kaavalla, joka on esitetty aiemmin tämän osion esimerkkitaulukossa.