Sort 및 SortByColumns 함수
적용 대상: 캔버스 앱 바탕 화면 흐름 모델 기반 앱 Power Pages 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" )
SortByColumns를 Drop down 또는 List box 컨트롤과 결합하여 사용자가 정렬할 열을 선택하게 할 수 있습니다.
오름차순 또는 내림차순 정렬 방식 외에도, SortByColumns는 단일 열 테이블 값을 기준으로 정렬될 수 있습니다. 예를 들어, [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]을 정렬 순서로 제공하여 주의 요일 이름을 기준으로 레코드를 정렬할 수 있습니다. 모든 레코드에는 Monday가 먼저 오고, 그 다음에 Tuesday가 옵니다. 정렬 테이블에 표시되지 않지만 찾은 레코드는 목록의 끝에 배치됩니다.
테이블은 문자열이나 숫자와 마찬가지로 Power Apps값입니다. 함수로부터 전달되거나 반환될 수 있습니다. Sort 와 SortByColumn 은 테이블을 수정하지 않습니다. 대신 테이블을 인수로 받아서 정렬된 새 테이블을 반환합니다. 자세한 내용은 테이블 작업을 참조하세요.
위임
가능하면 Power Apps에서 필터 및 정렬 작업을 데이터 원본에 위임하고 요청 시 결과의 페이지 사이를 이동합니다. 예를 들어, 데이터로 채워진 갤러리 컨트롤을 보여주는 앱을 시작하면 레코드의 첫 번째 집합만 장치로 가져올 수 있습니다. 사용자가 스크롤하면 데이터 원본에서 추가 데이터를 가져옵니다. 결과적으로 앱의 시작 시간이 빨라지고 대용량 데이터 집합에 액세스할 수 있습니다.
그러나 위임이 항상 가능한 것은 아닙니다. 데이터 원본은 위임을 통해 지원되는 함수와 연산자에 따라 달라집니다. 수식의 완전한 위임이 불가능한 경우 작성 환경은 위임할 수 없는 부분에 경고와 함께 플래그를 지정합니다. 가능하면 위임할 수 없는 함수와 연산자를 방지하기 위해 수식 변경을 고려합니다. 위임 목록은 위임할 수 있는 데이터 원본과 작업을 자세히 설명합니다.
위임이 불가능한 경우 Power Apps는 로컬에서 작업하기 위해 소수의 레코드 집합만 가져옵니다. 필터 및 정렬 함수는 축소된 레코드 집합에서 작동합니다. 갤러리에서 제공하는 것은 전체가 아닐 수 있으며, 이는 사용자들에게 혼란을 줄 수 있습니다.
자세한 내용은 위임 개요를 참조하십시오.
구문
정렬( 표, 수식 [, 정렬순서 ] )
- 표 - 필수. 정렬할 테이블입니다.
- 수식 - 필수. 다음 수식은 테이블의 각 레코드를 계산하고, 그 결과는 테이블을 정렬하는 데 사용됩니다. 테이블 내의 열을 참조할 수 있습니다.
- 정렬순서 - 선택 사항. 테이블을 내림차순으로 정렬하려면 SortOrder.Descending을 지정하십시오. 기본값은 SortOrder.Ascending 입니다.
SortByColumns( 테이블, ColumnName1 [, SortOrder1 , ColumnName2, SortOrder2, ... ] )
표 - 필수. 정렬할 테이블입니다.
열 이름 - 필수. 문자열로서 정렬할 열 이름입니다.
정렬 순서 - 선택 사항. 정렬 순서.오름차순 또는 정렬 순서.내림차순. 기본값은 SortOrder.Ascending 입니다. 여러 ColumnNames가 제공되면 마지막 열을 제외한 모든 열에 SortOrder가 포함되어야 합니다.
노트
공백이 있는 열 이름을 포함하는 SharePoint 및 Excel 데이터 원본의 경우 각 공백을 "_x0020_"로 지정합니다. 예를 들어, "Column Name"은 "Column_x0020_Name"으로 지정합니다.
SortByColumns( 테이블, 열 이름, SortOrderTable )
표 - 필수. 정렬할 테이블입니다.
ColumnName - 필수. 문자열로서 정렬할 열 이름입니다.
SortOrderTable - 필수. 정렬할 값들의 단일 열 테이블입니다.
노트
공백이 있는 열 이름을 포함하는 SharePoint 및 Excel 데이터 원본의 경우 각 공백을 "_x0020_"로 지정합니다. 예를 들어, "Column Name"은 "Column_x0020_Name"으로 지정합니다.
예제
다음 예에서는 이 테이블의 데이터가 포함된 IceCream 데이터 원본을 사용합니다.
수식 | 설명 | 결과 |
---|---|---|
정렬(아이스크림, 맛) SortByColumns(아이스크림, "맛") |
IceCream을 Flavor 열로 정렬합니다. Flavor 열에는 문자열이 포함되어 있어서 해당 테이블은 사전순으로 정렬됩니다. 기본적으로 정렬 순서는 오름차순입니다. | |
정렬(아이스크림, 수량) SortByColumns(아이스크림, "수량") |
IceCream을 Quantity 열로 정렬합니다. Quantity 열에는 숫자가 포함되어 있어서 해당 테이블은 번호순으로 정렬됩니다. 기본적으로 정렬 순서는 오름차순입니다. | |
정렬(아이스크림, 수량, 정렬순서.내림차순) SortByColumns(아이스크림, "수량", SortOrder.Descending) |
IceCream을 Quantity 열로 정렬합니다. Quantity 열에는 숫자가 포함되어 있어서 번호순으로 정렬됩니다. 정렬 순서가 내림차순으로 지정되었습니다. | |
정렬(아이스크림, 수량 + 주문시) | IceCream을 각 레코드에 대해 개별적으로 Quantity 및 OnOrder 열의 합으로 정렬합니다. 합계는 숫자이므로 해당 테이블은 번호순으로 정렬됩니다. 기본적으로 정렬 순서는 오름차순입니다. 원시 열 값이 아닌 수식으로 정렬하기 때문에 SortByColumns를 사용하는 것은 해당되지 않습니다. | |
정렬(정렬(아이스크림, 주문시), 수량) SortByColumns(아이스크림, "주문 중", SortOrder.Ascending, "수량", SortOrder.Ascending) |
IceCream을 OnOrder 열로 먼저 정렬한 후 Quantity 열로 정렬합니다. "Pistachio"는 OnOrder 기준에 따라 첫 번째 정렬에서 "Vanilla" 위로 올라간 다음, 둘 모두 Quantity 기준에 따라 적절한 위치로 이동합니다. | |
SortByColumns(아이스크림, "맛", [ "피스타치오", "딸기" ]) | IceCream을 "Pistachio" 및 "Strawberry"를 포함하는 단일 열 테이블 기준에 따라 Flavor 열로 정렬합니다. "Pistachio"의 Flavor가 있는 레코드가 첫 번째로 표시되고 "Strawberry"를 포함한 레코드가 다음에 나옵니다. "Vanilla"와 같이 일치하지 않는 Flavor 열의 값들은 일치했던 항목들 다음에 표시됩니다. |
단계별
이러한 예제를 직접 실행하려면 IceCream 데이터 원본을 컬렉션으로 만드십시오.
- 단추를 추가하고 OnSelect 속성을 이 수식으로 설정합니다.
ClearCollect( 아이스크림, { 맛: "초콜릿", 수량: 100, 주문 시: 150 }, { 맛: "바닐라", 수량: 200, 주문 시: 20 }, { 맛: "딸기", 수량: 300, 주문 시: 0 }, { 맛: "민트 초콜릿", 수량: 60, 주문 시: 100 }, { 맛: "피스타치오", 수량: 200, 주문 시: 10 } ) - 앱을 미리 보고, 단추를 선택한 다음, Esc를 눌러 기본 작업 영역으로 돌아갑니다.
- 방금 만든 컬렉션을 표시하려면 File 메뉴에서 Collections를 선택한 다음, Esc를 눌러 기본 작업 영역으로 돌아갑니다.
Sort
다른 단추를 추가하고, 자체 OnSelect 속성을 이 수식으로 설정합니다.
ClearCollect(정렬기준맛, 정렬(아이스크림,맛))앞 수식은 Ice Cream과 동일한 데이터를 포함하는 SortByFlavor라는 두 번째 컬렉션을 만듭니다. 그러나 새 컬렉션에는 오름차순의 Flavor 열로 사전순으로 정렬한 데이터가 포함됩니다.
F5 키를 누르고, 새 단추를 선택한 다음, Esc를 누릅니다.
두 컬렉션을 모두 표시하려면 File 메뉴에서 Collections를 선택한 다음, Esc를 눌러 기본 작업 영역으로 돌아갑니다.
마지막 세 단계를 반복하되, 만들려는 컬렉션의 이름을 변경하고, Sort 수식을 Sort를 사용하는 이 섹션 앞 부분의 예제 테이블의 다른 수식으로 교체합니다.
SortByColumns
다른 단추를 추가하고, 자체 OnSelect 속성을 이 수식으로 설정합니다.
ClearCollect(SortByQuantity, SortByColumns(아이스크림, "수량", SortOrder.Ascending, "맛", SortOrder.Descending))앞 수식은 Ice Cream과 동일한 데이터를 포함하는 SortByQuantity라는 세 번째 컬렉션을 만듭니다. 그러나 새 컬렉션에는 오름차순의 Quantity 열로 사전순으로 정렬한 후, 내림차순의 Flavor 열로 사전순으로 정렬한 데이터가 포함됩니다.
F5 키를 누르고, 새 단추를 선택한 다음, Esc를 누릅니다.
세 컬렉션을 모두 표시하려면 File 메뉴에서 Collections를 선택한 다음, Esc를 눌러 기본 작업 영역으로 돌아갑니다.
마지막 세 단계를 반복하되, 만들려는 컬렉션의 이름을 변경하고, SortByColumns 수식을 SortByColumns를 사용하는 이 섹션 앞 부분의 예제 테이블의 다른 수식으로 교체합니다.