PowerApps의 Sort 및 SortByColumns 함수Sort and SortByColumns functions in PowerApps

테이블을 정렬합니다.Sorts a table.

설명Description

Sort 함수는 수식에 따라 테이블을 정렬합니다.The Sort function sorts a table based on a formula.

해당 수식은 해당 테이블의 각 레코드를 계산하고, 그 결과는 테이블을 정렬하는 데 사용됩니다.The formula is evaluated for each record of the table, and the results are used to sort the table. 수식은 숫자, 문자열 또는 부울 값이 되어야 하며, 테이블 또는 레코드가 될 수 없습니다.The formula must result in a number, a string, or a Boolean value; it can't result in a table or a record.

Fields of the record currently being processed are available within the formula. You simply reference them by name as you would any other value. You can also reference control properties and other values from throughout your app. For more details, see the examples below and working with record scope.

하나의 열로 먼저 정렬 후 다른 열로 정렬하려면 Sort 수식을 다른 열에 삽입합니다.To sort first by one column and then by another, you embed a Sort formula within another. 예를 들어, Contacts 테이블을 LastName 열로 먼저 정렬한 다음 FirstName 열로 정렬하려면 이 수식(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 )

SortByColumns 함수는 하나 이상의 열을 기준으로 테이블을 정렬하는 데 사용할 수도 있습니다.The SortByColumns function can also be used to sort a table based on one or more columns.

SortByColumns에 대한 매개 변수 목록은 정렬할 열의 이름 및 열당 정렬 방향을 제공합니다.The parameter list for SortByColumns provides the names of the columns to sort by and the sort direction per column. 정렬 작업은 (첫 번째 열로 먼저 정렬한 후 두 번째 열로 정렬된) 매개 변수의 순서대로 수행됩니다.Sorting is performed in the order of the parameters (sorted first by the first column, then the second, and so on). 열 이름은 매개 변수 목록에 직접 포함될 경우 큰따옴표가 필요한 문자열로 지정됩니다.Column names are specified as strings, requiring double quotes if directly included in the parameter list. 예를 들어, SortByColumns( CustomerTable, "LastName" )입니다.For example, SortByColumns( CustomerTable, "LastName" ).

SortByColumns드롭다운 또는 목록 상자 컨트롤과 결합하면 사용자가 어떤 열로 정렬할지 선택할 수 있게 됩니다.You can combine SortByColumns with a Drop down or List box control to enable users to select which column to sort by.

SortByColumns는 오름차순 또는 내림차순의 정렬 방식 외에도, 테이블 값을 하나의 열로 정렬할 수 있습니다.In addition to sorting ascending or descending, SortByColumns can sort based on a single column table of values. 예를 들어, ["월요일", "화요일", "수요일", "목요일", "금요일", "토요일", "일요일"]을 정렬 순서로 제공하여 해당 주의 요일 이름을 기준으로 레코드를 정렬할 수 있습니다.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. 모든 레코드에는 월요일이 먼저 오고, 화요일이 다음에 옵니다.All records which have Monday" will come first, followed by Tuesday, and so on. 정렬 테이블에 표시되지 않지만 찾은 레코드는 해당 목록의 끝에 배치됩니다.Records found that do not appear in the sort table are put at the end of the list.

Table은 PowerApps에서 문자열이나 숫자와 같은 값입니다.Tables are a value in PowerApps, just like a string or number. 테이블을 함수로 전달하거나 함수로부터 반환할 수 있습니다.They can be passed to and returned from functions. SortSortByColumn은 테이블을 변경하지 않는 대신 테이블을 인수로 가져오고 정렬된 새 테이블을 반환합니다.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. 자세한 내용은 테이블 작업을 참조하세요.See working with tables for more details.

Delegation

When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. 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. As the user scrolls, additional data is brought down from the data source. The result is a faster start time for the app and access to very large data sets.

However, delegation may not always be possible. Data sources vary on what functions and operators they support with delegation. If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. When possible, consider changing the formula to avoid functions and operators that can't be delegated. The delegation list details which data sources and operations can be delegated.

If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filter and sort functions will operate on a reduced set of records. What is available in the Gallery may not be the complete story, which could be confusing to users.

See the delegation overview for more information.

구문Syntax

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

  • Table - 필수 항목입니다.Table - Required. 정렬할 테이블입니다.Table to sort.
  • Formula - 필수 항목입니다.Formula - Required. 이 수식은 해당 테이블의 각 레코드를 계산하고, 그 결과는 테이블을 정렬하는 데 사용됩니다.This formula is evaluated for each record of the table, and the results are used to sort the table. 테이블 내의 열을 참조할 수 있습니다.You can reference columns within the table.
  • SortOrder - 선택 항목입니다.SortOrder - Optional. 내림차순으로 테이블을 정렬하려면 SortOrder.Descending을 지정합니다.Specify SortOrder.Descending to sort the table in descending order. SortOrder.Ascending이 기본값입니다.SortOrder.Ascending is the default value.

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

  • Table - 필수 항목입니다.Table - Required. 정렬할 테이블입니다.Table to sort.
  • ColumnName(s) - 필수 항목입니다.ColumnName(s) - Required. 문자열로서 정렬할 열 이름입니다.The column names to sort on, as strings.
  • SortOrder(s) - 선택 항목입니다.SortOrder(s) - Optional. SortOrder.Ascending 또는 SortOrder.Descending이 있습니다.SortOrder.Ascending or SortOrder.Descending. SortOrder.Ascending이 기본값입니다.SortOrder.Ascending is the default. 다양한 ColumnNames가 제공되면 마지막 열을 제외한 모든 열에는 SortOrder가 포함되어야 합니다.If multiple ColumnNames are supplied, all but the last column must include a SortOrder.

    참고: 공백이 있는 열 이름이 포함된 SharePoint 및 Excel 데이터 원본의 경우 각 공백을 "_x0020_"으로 지정합니다.Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". 예를 들어, "Column Name""Column_x0020_Name"으로 지정합니다.For example, specify "Column Name" as "Column_x0020_Name".

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

  • Table - 필수 항목입니다.Table - Required. 정렬할 테이블입니다.Table to sort.
  • ColumnName - 필수 항목입니다.ColumnName - Required. 문자열로서 정렬할 열 이름입니다.The column name to sort on, as strings.
  • SortOrderTable - 필수 항목입니다.SortOrderTable - Required. 정렬할 값들의 단일 열 테이블입니다.Single column table of values to sort by.

    참고: 공백이 있는 열 이름이 포함된 SharePoint 및 Excel 데이터 원본의 경우 각 공백을 "_x0020_"으로 지정합니다.Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". 예를 들어, "Column Name""Column_x0020_Name"으로 지정합니다.For example, specify "Column Name" as "Column_x0020_Name".

Examples

다음 예제에서는 이 테이블의 데이터가 포함된 IceCream 데이터 원본을 사용합니다.For the following examples, we'll use the IceCream data source, which contains the data in this table:

수식Formula 설명Description 결과Result
Sort( IceCream, Flavor )Sort( IceCream, Flavor )

SortByColumns( IceCream "Flavor" )SortByColumns( IceCream, "Flavor" )
IceCreamFlavor 열로 정렬합니다.Sorts IceCream by its Flavor column. Flavor 열에는 문자열이 포함되어 해당 테이블은 사전순으로 정렬됩니다.The Flavor column contains strings, so the table is sorted alphabetically. 기본적으로 정렬 순서는 오름차순입니다.By default, the sort order is ascending.
Sort( IceCream, Quantity )Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )SortByColumns( IceCream, "Quantity" )
IceCreamQuantity 열로 정렬합니다.Sorts IceCream by its Quantity column. Quantity 열에는 숫자가 포함되어 해당 테이블은 번호순으로 정렬됩니다.The Quantity column contains numbers, so the table is sorted numerically. 기본적으로 정렬 순서는 오름차순입니다.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 )
IceCreamQuantity 열로 정렬합니다.Sorts IceCream by its Quantity column. Quantity 열에는 숫자가 포함되어 번호순으로 정렬됩니다.The Quantity column contains numbers, so the sort is done numerically. 정렬 순서는 내림차순으로 지정되었습니다.The sort order has been specified as descending.
Sort( IceCream, Quantity + OnOrder )Sort( IceCream, Quantity + OnOrder ) IceCream을 각 레코드에 대해 개별적으로 QuantityOnOrder 열의 합으로 정렬합니다.Sorts IceCream by the sum of its Quantity and OnOrder columns for each record individually. 합계는 숫자이므로 해당 테이블이 번호순으로 정렬됩니다.The sum is a number, so the table is sorted numerically. 기본적으로 정렬 순서는 오름차순입니다.By default, the sort order is ascending. 원시 열 값이 아닌 수식으로 정렬하기 때문에 SortByColumns를 사용하는 것에는 적용되지 않습니다.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 )
IceCreamOnOrder 열로 먼저 정렬한 후 Quantity 열로 정렬합니다.Sorts IceCream first by its OnOrder column, and then by its Quantity column. OnOrder 기준으로 첫 번째 정렬에서 "Pistachio"는 "Vanilla" 위로 올라간 다음, 둘 모두 Quantity 기준에 따른 적절한 위치로 함께 이동합니다.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" ] ) "Pistachio" 및 "Strawberry"를 포함하는 단일 열 테이블 기준의 Flavor 열로 IceCream을 정렬합니다.Sorts IceCream by it's Flavor column based on the single column table containing "Pistachio" and "Strawberry". "Pistachio" Flavor가 있는 레코드가 첫 번째로 표시되고 "Strawberry"를 포함한 레코드가 다음에 나옵니다.Records which have a Flavor of "Pistachio" will appear first in the result, followed by records that contain "Strawberry". "Vanilla"와 같이 일치하지 않는 Flavor 열의 값들은 일치했던 항목들 다음에 표시됩니다.For values in the Flavor column that are not matched, such as "Vanilla", they will appear after the items that were matched.

단계별 가이드Step by step

이러한 예제를 직접 실행하려면 Collection과 같은 IceCream 데이터 원본을 만듭니다.To run these examples yourself, create the IceCream data source as a collection:

  1. 단추 하나를 추가하고 이 수식에 OnSelect 속성을 설정합니다.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. 앱을 미리 보고, 단추를 선택한 다음 기본 작업 영역으로 돌아가려면 Esc 키를 누릅니다.Preview the app, select the button, and then press Esc to return to the default workspace.
  3. 바로 만든 컬렉션을 표시하려면 File 메뉴의 Collections를 선택한 다음 기본 작업 영역으로 돌아가려면 Esc 키를 누릅니다.Select Collections on the File menu to display the collection that you just created, and then press Esc to return to the default workspace.

정렬Sort

  1. 또 다른 단추를 추가하고 이 수식에 OnSelect 속성을 설정합니다.Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) ) ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    앞의 수식은 Ice Cream과 동일한 데이터를 포함하는 SortByFlavor라는 이름의 2번째 컬렉션을 만듭니다.The previous formula creates a second collection, named SortByFlavor, that contains the same data as Ice Cream. 단, 새 컬렉션에는 오름차순의 Flavor 열로 사전순으로 정렬한 데이터가 포함됩니다.However, the new collection contains the data sorted alphabetically by the Flavor column in ascending order.

  2. F5 키를 누르고 새 단추를 선택한 다음 Esc 키를 누릅니다.Press F5, select the new button, and then press Esc.
  3. 두 컬렉션을 모두 표시하려면 File 메뉴의 Collections를 선택한 다음 기본 작업 영역으로 돌아가려면 Esc 키를 누릅니다.Select Collections on the File menu to display both collections, and then press Esc to return to the default workspace.
  4. 마지막 세 단계를 반복하되, 만들려는 컬렉션의 이름을 변경하고, Sort 수식을 Sort를 사용하는 이 섹션 앞 부분의 예제 테이블의 다른 수식으로 교체합니다.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. 또 다른 단추를 추가하고 이 수식에 OnSelect 속성을 설정합니다.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 ) )

    앞의 수식은 Ice Cream과 동일한 데이터를 포함하는 SortByQuantity라는 이름의 3번째 컬렉션을 만듭니다.The previous formula creates a third collection, named SortByQuantity, that contains the same data as Ice Cream. 단, 새 컬렉션에는 오름차순의 Quantity 열로 사전순으로 정렬한 후, 내림차순의 Flavor 열로 사전순으로 정렬한 데이터가 포함됩니다.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 키를 누르고 새 단추를 선택한 다음 Esc 키를 누릅니다.Press F5, select the new button, and then press Esc.
  3. 세 컬렉션을 모두 표시하려면 파일 메뉴의 Collections를 선택한 다음 기본 작업 영역으로 돌아가려면 Esc 키를 누릅니다.Select Collections on the File menu to display all three collections, and then press Esc to return to the default workspace.
  4. 마지막 세 단계를 반복하되, 만들려는 컬렉션의 이름을 변경하고, SortByColumns 수식을 SortByColumns를 사용하는 이 섹션 앞 부분의 예제 테이블의 다른 수식으로 교체합니다.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.