Sort 및 SortByColumns 함수

적용 대상: 캔버스 앱 데스크톱 흐름 모델 기반 앱 Power Platform CLI

테이블을 정렬합니다.

노트

PAC CLI pac power-fx 명령SortByColumns 함수를 지원하지 않습니다.

Description

Sort 함수는 수식에 따라 테이블을 정렬합니다.

수식은 테이블의 각 레코드를 계산하고, 그 결과는 테이블을 정렬하는 데 사용됩니다. 수식은 숫자, 문자열 또는 부울 값이 되어야 하며, 테이블 또는 레코드가 될 수 없습니다.

현재 처리 중인 레코드의 필드는 수식 내에서 사용할 수 있습니다. ThisRecord 연산자를 사용하거나 다른 값과 마찬가지로 이름을 기준으로 필드를 참조하기만 하면 됩니다. As 연산자는 처리 중인 레코드의 이름을 지정하여 수식을 이해하기 쉽게 만들고 중첩된 레코드를 액세스 가능하게 만드는 데에도 사용할 수 있습니다. 자세한 정보는 아래 예제 및 레코드 범위 작업을 참조하세요.

하나의 열로 먼저 정렬한 후 다른 열로 정렬하려면 Sort 수식을 다른 열에 포함하십시오. 예를 들어, Sort( Sort( Contacts, LastName ), FirstName ) 수식을 사용하여 Contacts 테이블을 LastName 열로 정렬한 다음 FirstName 열로 정렬할 수 있습니다.

SortByColumns 함수는 하나 이상의 열을 기준으로 테이블을 정렬하는 데 사용할 수도 있습니다.

SortByColumns에 대한 매개 변수 목록은 정렬할 열의 이름 및 열당 정렬 방향을 제공합니다. 정렬 작업은 매개 변수의 순서(첫 번째 열로 먼저 정렬한 후 두 번째 열로 정렬 등)대로 수행됩니다. 열 이름은 문자열로 지정되며, 매개 변수 목록에 직접 포함될 경우 큰따옴표가 필요합니다. 예: SortByColumns( CustomerTable, "LastName" )

SortByColumnsDrop down 또는 List box 컨트롤과 결합하여 사용자가 정렬할 열을 선택하게 할 수 있습니다.

오름차순 또는 내림차순 정렬 방식 외에도, SortByColumns는 단일 열 테이블 값을 기준으로 정렬될 수 있습니다. 예를 들어, [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]을 정렬 순서로 제공하여 주의 요일 이름을 기준으로 레코드를 정렬할 수 있습니다. 모든 레코드에는 Monday가 먼저 오고, 그 다음에 Tuesday가 옵니다. 정렬 테이블에 표시되지 않지만 찾은 레코드는 목록의 끝에 배치됩니다.

테이블은 Power Apps에서 문자열이나 숫자와 같은 값입니다. 함수로부터 전달되거나 반환될 수 있습니다. SortSortByColumn은 테이블을 변경하지 않는 대신 테이블을 인수로 가져오고 정렬된 새 테이블을 반환합니다. 자세한 내용은 테이블 작업을 참조하세요.

위임

가능하면 Power Apps에서 필터 및 정렬 작업을 데이터 원본에 위임하고 요청 시 결과의 페이지 사이를 이동합니다. 예를 들어, 데이터로 채워진 갤러리 컨트롤을 보여주는 앱을 시작하면 레코드의 첫 번째 집합만 장치로 가져올 수 있습니다. 사용자가 스크롤하면 데이터 원본에서 추가 데이터를 가져옵니다. 결과적으로 앱의 시작 시간이 빨라지고 대용량 데이터 집합에 액세스할 수 있습니다.

그러나 위임이 항상 가능한 것은 아닙니다. 데이터 원본은 위임을 통해 지원되는 함수와 연산자에 따라 달라집니다. 수식의 완전한 위임이 불가능한 경우 작성 환경은 위임할 수 없는 부분에 경고와 함께 플래그를 지정합니다. 가능하면 위임할 수 없는 함수와 연산자를 방지하기 위해 수식 변경을 고려합니다. 위임 목록은 위임할 수 있는 데이터 원본과 작업을 자세히 설명합니다.

위임이 불가능한 경우 Power Apps는 로컬에서 작업하기 위해 소수의 레코드 집합만 가져옵니다. 필터 및 정렬 함수는 축소된 레코드 집합에서 작동합니다. 갤러리에서 제공하는 것은 전체가 아닐 수 있으며, 이는 사용자들에게 혼란을 줄 수 있습니다.

자세한 내용은 위임 개요를 참조하십시오.

구문

Sort( Table, Formula [, SortOrder ] )

  • Table – 필수 항목입니다. 정렬할 테이블입니다.
  • Formula - 필수 항목입니다. 다음 수식은 테이블의 각 레코드를 계산하고, 그 결과는 테이블을 정렬하는 데 사용됩니다. 테이블 내의 열을 참조할 수 있습니다.
  • SortOrder - 선택 항목입니다. 테이블을 내림차순으로 정렬하려면 SortOrder.Descending을 지정하십시오. SortOrder.Ascending은 기본값입니다.

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

  • Table – 필수 항목입니다. 정렬할 테이블입니다.

  • ColumnName(s) - 필수 항목입니다. 문자열로서 정렬할 열 이름입니다.

  • SortOrder(s) - 선택 항목입니다. SortOrder.Ascending 또는 SortOrder.Descending SortOrder.Ascending은 기본값입니다. 여러 ColumnNames가 제공되면 마지막 열을 제외한 모든 열에 SortOrder가 포함되어야 합니다.

    노트

    공백이 있는 열 이름을 포함하는 SharePoint 및 Excel 데이터 원본의 경우 각 공백을 "_x0020_"로 지정합니다. 예를 들어, "Column Name""Column_x0020_Name"으로 지정합니다.

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – 필수 항목입니다. 정렬할 테이블입니다.

  • ColumnName - 필수 항목입니다. 문자열로서 정렬할 열 이름입니다.

  • SortOrderTable - 필수 항목입니다. 정렬할 값들의 단일 열 테이블입니다.

    노트

    공백이 있는 열 이름을 포함하는 SharePoint 및 Excel 데이터 원본의 경우 각 공백을 "_x0020_"로 지정합니다. 예를 들어, "Column Name""Column_x0020_Name"으로 지정합니다.

예제

다음 예에서는 이 테이블의 데이터가 포함된 IceCream데이터 원본을 사용합니다.

IceCream 예.

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

SortByColumns( IceCream "Flavor" )
IceCreamFlavor 열로 정렬합니다. Flavor 열에는 문자열이 포함되어 있어서 해당 테이블은 사전순으로 정렬됩니다. 기본적으로 정렬 순서는 오름차순입니다. 알파벳순으로 정렬.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
IceCreamQuantity 열로 정렬합니다. Quantity 열에는 숫자가 포함되어 있어서 해당 테이블은 번호순으로 정렬됩니다. 기본적으로 정렬 순서는 오름차순입니다. 숫자로 정렬.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
IceCreamQuantity 열로 정렬합니다. Quantity 열에는 숫자가 포함되어 있어서 번호순으로 정렬됩니다. 정렬 순서가 내림차순으로 지정되었습니다. 숫자 및 내림차순 정렬.
Sort( IceCream, Quantity + OnOrder ) IceCream을 각 레코드에 대해 개별적으로 QuantityOnOrder 열의 합으로 정렬합니다. 합계는 숫자이므로 해당 테이블은 번호순으로 정렬됩니다. 기본적으로 정렬 순서는 오름차순입니다. 원시 열 값이 아닌 수식으로 정렬하기 때문에 SortByColumns를 사용하는 것은 해당되지 않습니다. 숫자 및 오름차순 정렬.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
IceCreamOnOrder 열로 먼저 정렬한 후 Quantity 열로 정렬합니다. "Pistachio"는 OnOrder 기준에 따라 첫 번째 정렬에서 "Vanilla" 위로 올라간 다음, 둘 모두 Quantity 기준에 따라 적절한 위치로 이동합니다. Vanilla 위에 Pistachio로 정렬.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) IceCream을 "Pistachio" 및 "Strawberry"를 포함하는 단일 열 테이블 기준에 따라 Flavor 열로 정렬합니다. "Pistachio"의 Flavor가 있는 레코드가 첫 번째로 표시되고 "Strawberry"를 포함한 레코드가 다음에 나옵니다. "Vanilla"와 같이 일치하지 않는 Flavor 열의 값들은 일치했던 항목들 다음에 표시됩니다. Strawberry 위에 Pistachio로 정렬.

단계별

이러한 예제를 직접 실행하려면 IceCream 데이터 원본을 컬렉션으로 만드십시오.

  1. 단추를 추가하고 OnSelect 속성을 이 수식으로 설정합니다.
    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를 눌러 기본 작업 영역으로 돌아갑니다.
  3. 방금 만든 컬렉션을 표시하려면 File 메뉴에서 Collections를 선택한 다음, Esc를 눌러 기본 작업 영역으로 돌아갑니다.

Sort

  1. 다른 단추를 추가하고, 자체 OnSelect 속성을 이 수식으로 설정합니다.
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    앞 수식은 Ice Cream과 동일한 데이터를 포함하는 SortByFlavor라는 두 번째 컬렉션을 만듭니다. 그러나 새 컬렉션에는 오름차순의 Flavor 열로 사전순으로 정렬한 데이터가 포함됩니다.

  2. F5 키를 누르고, 새 단추를 선택한 다음, Esc를 누릅니다.

  3. 두 컬렉션을 모두 표시하려면 File 메뉴에서 Collections를 선택한 다음, Esc를 눌러 기본 작업 영역으로 돌아갑니다.

  4. 마지막 세 단계를 반복하되, 만들려는 컬렉션의 이름을 변경하고, Sort 수식을 Sort를 사용하는 이 섹션 앞 부분의 예제 테이블의 다른 수식으로 교체합니다.

SortByColumns

  1. 다른 단추를 추가하고, 자체 OnSelect 속성을 이 수식으로 설정합니다.
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    앞 수식은 Ice Cream과 동일한 데이터를 포함하는 SortByQuantity라는 세 번째 컬렉션을 만듭니다. 그러나 새 컬렉션에는 오름차순의 Quantity 열로 사전순으로 정렬한 후, 내림차순의 Flavor 열로 사전순으로 정렬한 데이터가 포함됩니다.

  2. F5 키를 누르고, 새 단추를 선택한 다음, Esc를 누릅니다.

  3. 세 컬렉션을 모두 표시하려면 File 메뉴에서 Collections를 선택한 다음, Esc를 눌러 기본 작업 영역으로 돌아갑니다.

  4. 마지막 세 단계를 반복하되, 만들려는 컬렉션의 이름을 변경하고, SortByColumns 수식을 SortByColumns를 사용하는 이 섹션 앞 부분의 예제 테이블의 다른 수식으로 교체합니다.