PowerApps'teki Sort ve SortByColumns işlevleriSort and SortByColumns functions in PowerApps

Bir tabloyu sıralar.Sorts a table.

AçıklamaDescription

Sort işlevi, formülleri temel alarak tabloları sıralar.The Sort function sorts a table based on a formula.

Formül, tablodaki her bir kayıt için değerlendirilir ve sonuçlar kullanılarak tablo sıralanır.The formula is evaluated for each record of the table, and the results are used to sort the table. Formül bir sayı, dize veya Boole değeri ile sonuçlanmalıdır; tablo veya kayıt ile sonuçlanamaz.The formula must result in a number, a string, or a Boolean value; it can't result in a table or a record.

İşlenmekte olan kaydın alanları formül içinde de kullanılabilir.Fields of the record currently being processed are available within the formula. Bunun için, diğer tüm değerlerde olduğu gibi bunlara adlarıyla başvurmanız yeterlidir.You simply reference them by name as you would any other value. Ayrıca uygulamanızda denetim özelliklerine ve diğer değerlere de başvurabilirsiniz.You can also reference control properties and other values from throughout your app. Daha ayrıntılı bilgi için aşağıdaki örneklere ve kayıt kapsamı ile çalışma konusuna göz atın.For more details, see the examples below and working with record scope.

İlk önce bir sütuna göre ve ardından başka bir sütuna göre sıralamak isterseniz ikinci sütuna Sort formülünü eklersiniz.To sort first by one column and then by another, you embed a Sort formula within another. Örneğin, Contacts tablosunu ilk önce LastName sütununa göre ve ardından FirstName sütununa göre sıralamak için şu formülü kullanabilirsiniz: Sort( Sort( Contacts, LastName ), FirstName )For example, you can use this formula to sort a Contacts table first by a LastName column and then by a FirstName column: Sort( Sort( Contacts, LastName ), FirstName )

Tabloyu bir veya daha fazla sütuna göre sıralamak için SortByColumns işlevi de kullanılabilir.The SortByColumns function can also be used to sort a table based on one or more columns.

SortByColumns işlevine ilişkin parametre listesi, sıralama ölçütü olarak kullanılacak sütunların adlarını ve her bir sütuna ilişkin sıralama yönünü de sağlar.The parameter list for SortByColumns provides the names of the columns to sort by and the sort direction per column. Sıralama, parametrelerin sırasına göre gerçekleştirilir. (Önce ilk sütuna göre, ardından ikinci sütuna göre sıralama yapılır ve bu şekilde devam eder).Sorting is performed in the order of the parameters (sorted first by the first column, then the second, and so on). Sütun adları, dizeler şeklinde belirtilir ve parametre listesine doğrudan dahil edilirlerse çift tırnak işareti gerekir.Column names are specified as strings, requiring double quotes if directly included in the parameter list. Örneğin, SortByColumns( CustomerTable, "LastName" ).For example, SortByColumns( CustomerTable, "LastName" ).

Kullanıcıların, sıralama ölçütü olarak kullanacakları sütunu seçmelerine olanak sağlamak üzere SortByColumns işlevini, Açılan denetimle veya Liste kutusu denetimiyle birleştirebilirsiniz.You can combine SortByColumns with a Drop down or List box control to enable users to select which column to sort by.

Artan veya azalan düzende sıralamaya ek olarak SortByColumns, tek sütunlu bir değer tablosuna göre de sıralama yapabilir.In addition to sorting ascending or descending, SortByColumns can sort based on a single column table of values. Örneğin, sıralama düzeni olarak [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] verilerini sağlayarak kaydı, haftanın günlerinin adlarına göre sıralayabilirsiniz.For example, you can sort record based on the name of a day of the week by supplying [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] as the sort order. Monday içeren tüm kayıtlar önde sıralanır; bu kayıtları, Tuesday içeren kayıtlar takip eder ve sıralama bu düzende devam eder.All records which have Monday" will come first, followed by Tuesday, and so on. Sıralama tablosunda görünmediği saptanan kayıtlar, listenin sonuna yerleştirilir.Records found that do not appear in the sort table are put at the end of the list.

PowerApps'te tablolar, tıpkı bir dize veya sayı gibi değerlendirilir.Tables are a value in PowerApps, just like a string or number. Tablolar, işlevlere geçirilebilir ve işlevlerden döndürülebilir.They can be passed to and returned from functions. Sort ve SortByColumn işlevleri bir tabloyu değiştirmez; bunun yerine tabloyu bir bağımsız değişken olarak ele alır ve sıralanmış yeni bir tablo döndürür.Sort and SortByColumn don't modify a table; instead they take a table as an argument and return a new table that has been sorted. Daha fazla ayrıntı için bkz. tablolarla çalışma.See working with tables for more details.

TemsilciDelegation

Mümkün olduğunda PowerApps, veri kaynaklarında filtre ve sıralama işlemlerini temsilci olarak seçmenin yanı sıra sonuçları isteğe bağlı olarak görüntüler.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. Örneğin, verilerle doldurulmuş bir Galeri denetiminin gösterildiği bir uygulamayı başlatırsanız cihaza başlangıçta yalnızca ilk kayıt kümesi getirilir.For example, when you start an app that shows a Gallery control filled with data, only the first set of records will be initially brought to the device. Kullanıcı kaydırma yaparken veri kaynağından daha fazla veri getirilir.As the user scrolls, additional data is brought down from the data source. Sonuç olarak uygulamanın başlaması için gereken süreden tasarruf edilir ve daha büyük veri kümelerine erişim elde edilir.The result is a faster start time for the app and access to very large data sets.

Ancak, temsilci seçme her zaman mümkün olmayabilir.However, delegation may not always be possible. Veri kaynakları, temsilci seçmeye ilişkin olarak desteklenen işlevler ve işleçler konusunda değişiklik gösterir.Data sources vary on what functions and operators they support with delegation. Bir formülün tam temsili mümkün değilse temsilci olarak seçilemeyen kısma yazma ortamında bir uyarı bayrağı eklenir.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Mümkün olduğunda, bu formülü, temsilci olarak seçilemeyen işlevlerden ve işleçlerden kaçınılacak şekilde değiştirebilirsiniz.When possible, consider changing the formula to avoid functions and operators that can't be delegated. Temsilci seçme listesinde, temsilci olarak seçilebilen veri kaynakları ve işleçler ayrıntılı olarak listelenir.The delegation list details which data sources and operations can be delegated.

Temsilci seçme mümkün değilse PowerApps, yerel olarak çalışılmasını sağlamak üzere yalnızca küçük bir kayıt kümesi çeker.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filtreleme ve sıralama işlevleri, sınırlı bir kayıt kümesinde çalışır.Filter and sort functions will operate on a reduced set of records. Galeri denetimindeki öğeler verilerin tamamını yansıtmayabilir ve bu da kullanıcılar için kafa karıştırıcı olabilir.What is available in the Gallery may not be the complete story, which could be confusing to users.

Daha fazla bilgi için bkz. temsilci seçmeye genel bakış.See the delegation overview for more information.

Söz dizimiSyntax

Sort( Table, Formula [, SortOrder ] )Sort( Table, Formula [, SortOrder ] )

  • Table - Gerekli.Table - Required. Sıralanacak tablo.Table to sort.
  • Formula - Gerekli.Formula - Required. Bu formül, tablodaki her bir kayıt için değerlendirilir ve sonuçlar kullanılarak tablo sıralanır.This formula is evaluated for each record of the table, and the results are used to sort the table. Tablodaki sütunlara başvurabilirsiniz.You can reference columns within the table.
  • SortOrder - İsteğe bağlı.SortOrder - Optional. Tabloyu azalan düzende sıralamak için SortOrder.Descending işlevini belirtin.Specify SortOrder.Descending to sort the table in descending order. SortOrder.Ascending, varsayılan değerdir.SortOrder.Ascending is the default value.

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

  • Table - Gerekli.Table - Required. Sıralanacak tablo.Table to sort.
  • ColumnName değerleri - Gerekli.ColumnName(s) - Required. Dizeler halinde sıralanacak olan sütun adları.The column names to sort on, as strings.
  • SortOrder değerleri - İsteğe bağlı.SortOrder(s) - Optional. SortOrder.Ascending veya SortOrder.Descending.SortOrder.Ascending or SortOrder.Descending. SortOrder.Ascending varsayılan değerdir.SortOrder.Ascending is the default. Birden çok ColumnName değeri sağlanırsa son sütun dışındaki tüm sütunlar SortOrder içermelidir.If multiple ColumnNames are supplied, all but the last column must include a SortOrder.

    Not

    Boşluklu sütun adları içeren SharePoint ve Excel veri kaynakları için her bir boşluğu "_x0020_" olarak belirtin.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Örneğin, "Sütun Adı" öğesini "Sütun_x0020_Adı" olarak belirtin.For example, specify "Column Name" as "Column_x0020_Name".

SortByColumns( Table, ColumnName, SortOrderTable )SortByColumns( Table, ColumnName, SortOrderTable )

  • Table - Gerekli.Table - Required. Sıralanacak tablo.Table to sort.
  • ColumnName - Gerekli.ColumnName - Required. Dizeler halinde sıralanacak olan sütun adı.The column name to sort on, as strings.
  • SortOrderTable - Gerekli.SortOrderTable - Required. Sıralama ölçütü olarak kullanılacak olan tek sütunlu tablo.Single column table of values to sort by.

    Not

    Boşluklu sütun adları içeren SharePoint ve Excel veri kaynakları için her bir boşluğu "_x0020_" olarak belirtin.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Örneğin, "Sütun Adı" öğesini "Sütun_x0020_Adı" olarak belirtin.For example, specify "Column Name" as "Column_x0020_Name".

ÖrneklerExamples

Sonraki örneklerde, aşağıdaki tablodaki verileri içeren IceCream veri kaynağını kullanacağız:For the following examples, we'll use the IceCream data source, which contains the data in this table:

FormülFormula AçıklamaDescription SonuçResult
Sort( IceCream, Flavor )Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )SortByColumns( IceCream, "Flavor" )
IceCream veri kaynağını, bu kaynağa ait Flavor sütununa göre sıralar.Sorts IceCream by its Flavor column. Flavor sütununda dizeler olduğundan tablo, alfabetik olarak sıralanır.The Flavor column contains strings, so the table is sorted alphabetically. Varsayılan olarak, sıralama artan düzendedir.By default, the sort order is ascending.
Sort( IceCream, Quantity )Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )SortByColumns( IceCream, "Quantity" )
IceCream veri kaynağını, Quantity sütununa göre sıralar.Sorts IceCream by its Quantity column. Quantity sütununda sayılar olduğundan tablo, sayısal olarak sıralanır.The Quantity column contains numbers, so the table is sorted numerically. Varsayılan olarak, sıralama artan düzendedir.By default, the sort order is ascending.
Sort( IceCream, Quantity, SortOrder.Descending )Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )SortByColumns( IceCream, "Quantity", SortOrder.Descending )
IceCream veri kaynağını, Quantity sütununa göre sıralar.Sorts IceCream by its Quantity column. Quantity sütununda sayılar olduğundan sıralama, sayısal olarak yapılır.The Quantity column contains numbers, so the sort is done numerically. Sıralama, azalan düzende gerçekleşecek şekilde belirtilmiştir.The sort order has been specified as descending.
Sort( IceCream, Quantity + OnOrder )Sort( IceCream, Quantity + OnOrder ) IceCream veri kaynağını, ayrı ayrı her bir kayda ilişkin Quantity ve OnOrder sütunlarının toplamına göre sıralar.Sorts IceCream by the sum of its Quantity and OnOrder columns for each record individually. Toplam bir sayı olduğundan tablo, sayısal olarak sıralanır.The sum is a number, so the table is sorted numerically. Varsayılan olarak, sıralama artan düzendedir.By default, the sort order is ascending. Ham sütun değerleri yerine formüle göre sıralama yaptığımızdan SortByColumns işlevini kullanarak eşdeğer bir sonuç elde edemeyiz.Since we are sorting by a formula and not by raw column values, there is no equivalent using SortByColumns.
Sort( Sort( IceCream, OnOrder ), Quantity )Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )
IceCream veri kaynağını, ilk olarak OnOrder sütununa ve ardından Quantity sütununa göre sıralar.Sorts IceCream first by its OnOrder column, and then by its Quantity column. OnOrder sütununa göre yapılan ilk sıralamada "Pistachio" verisinin "Vanilla" verisinin üstünde yer aldığını ve ardından Quantity sütununa göre yapılan sıralamada, ikisinin de kendilerine göre uygun yerlere gelecek şekilde sıralandıklarını önünde bulundurun.Note that "Pistachio" rose above "Vanilla" in the first sort based on OnOrder, and then together they moved to their appropriate place based on Quantity.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] )SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) IceCream veri kaynağını, "Pistachio" ve "Strawberry" verilerini içeren tek sütunlu tabloyu temel alarak bu veri kaynağına ait Flavor sütununa göre sıralar.Sorts IceCream by it's Flavor column based on the single column table containing "Pistachio" and "Strawberry". Flavor değeri "Pistachio" olan kayıtlar, sonuçta ilk olarak görünür ve bunları, "Strawberry" içeren kayıtlar takip eder.Records which have a Flavor of "Pistachio" will appear first in the result, followed by records that contain "Strawberry". Flavor sütunundaki eşleşmeyen değerler ("Vanilla" gibi), eşlenen değerlerden sonra yer alır.For values in the Flavor column that are not matched, such as "Vanilla", they will appear after the items that were matched.

Adım adımStep by step

Bu örnekleri kendi başınıza çalıştırmak için IceCream veri kaynağını bir koleksiyon olarak oluşturun:To run these examples yourself, create the IceCream data source as a collection:

  1. Bir düğme ekleyin ve düğmenin OnSelect özelliğini şu formül olarak ayarlayın:Add a button, and set its OnSelect property to this formula:
    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 } )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. Uygulamayı önizleyin, düğmeyi seçin ve ardından varsayılan çalışma alanına dönmek için Esc tuşuna basın.Preview the app, select the button, and then press Esc to return to the default workspace.
  3. Oluşturduğunuz koleksiyonu görüntülemek için Dosya menüsünde Koleksiyonlar seçeneğini belirleyin ve ardından varsayılan çalışma alanına dönmek için Esc tuşuna basın.Select Collections on the File menu to display the collection that you just created, and then press Esc to return to the default workspace.

SıralaSort

  1. Başka bir düğme ekleyin ve düğmenin OnSelect özelliğini şu formül olarak ayarlayın:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Bir önceki formül, Ice Cream veri kaynağıyla aynı verileri içeren SortByFlavor adlı ikinci bir koleksiyon oluşturur.The previous formula creates a second collection, named SortByFlavor, that contains the same data as Ice Cream. Ancak yeni koleksiyon, Flavor sütunu tarafından artan düzende alfabetik olarak sıralanmış verileri içerir.However, the new collection contains the data sorted alphabetically by the Flavor column in ascending order.

  2. F5 tuşuna basın, yeni düğmeyi seçin ve ardından Esc tuşuna basın.Press F5, select the new button, and then press Esc.
  3. Her iki koleksiyonu da görüntülemek için Dosya menüsünde Koleksiyonlar seçeneğini belirleyin ve ardından çalışma alanınıza dönmek için Esc tuşuna basın.Select Collections on the File menu to display both collections, and then press Esc to return to the default workspace.
  4. Son üç adımı yineleyin ancak oluşturmak istediğiniz koleksiyonun adını değiştirin ve Sort formülünü, bu bölümün önceki kısımlarında bulunan ve Sort formülünü kullanan örnek tablosundaki farklı bir formülle değiştirin.Repeat the last three steps, but change the name of the collection that you want to create, and replace the Sort formula with a different formula from the table of examples earlier in this section that uses Sort.

SortByColumnsSortByColumns

  1. Başka bir düğme ekleyin ve düğmenin OnSelect özelliğini şu formül olarak ayarlayın:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )

    Bir önceki formül, Ice Cream veri kaynağıyla aynı verileri içeren SortByQuantity adlı üçüncü bir koleksiyon oluşturur.The previous formula creates a third collection, named SortByQuantity, that contains the same data as Ice Cream. Ancak yeni koleksiyon, Quantity sütununa göre sayısal olarak artan düzende ve ardından Flavor sütununa göre azalan düzende sıralanır.However, the new collection contains the data sorted numerically by the Quanity column in ascending order, and then by the Flavor column in descending order.

  2. F5 tuşuna basın, yeni düğmeyi seçin ve ardından Esc tuşuna basın.Press F5, select the new button, and then press Esc.
  3. Her üç koleksiyonu da görüntülemek için Dosya menüsünde Koleksiyonlar seçeneğini belirleyin ve ardından çalışma alanına dönmek için Esc tuşuna basın.Select Collections on the File menu to display all three collections, and then press Esc to return to the default workspace.
  4. Son üç adımı yineleyin ancak oluşturmak istediğiniz koleksiyonun adını değiştirin ve SortByColumns formülünü, bu bölümün önceki kısımlarında bulunan ve SortByColumns formülünü kullanan örnek tablosundaki farklı bir formülle değiştirin.Repeat the last three steps, but change the name of the collection that you want to create, and replace the SortByColumns formula with a different formula from the table of examples earlier in this section that uses SortByColumns.