GroupBy 및 Ungroup 함수
적용 대상: Canvas 앱 모델 기반 앱 Power Pages
Description
GroupBy 함수는 하나 이상의 열 값을 기반으로 레코드가 그룹화된 테이블을 반환합니다. 동일한 그룹의 레코드는 단일 레코드에 배치되고 나머지 열의 중첩 테이블을 보유하는 열이 추가됩니다.
Ungroup 함수는 GroupBy 프로세스를 되돌립니다. 이 함수는 함께 그룹화된 레코드를 별도의 레코드로 분리하는 테이블을 반환합니다.
GroupBy를 사용하여 레코드를 그룹화하고, 반환되는 테이블을 수정한 다음, Ungroup을 사용하여 수정된 테이블의 레코드 그룹을 해제할 수 있습니다. 예를 들어 다음과 같은 방법으로 레코드 그룹을 제거할 수 있습니다.
- GroupBy 함수를 사용합니다.
- Filter 함수를 사용하여 전체 레코드 그룹을 제거합니다.
- Ungroup 함수를 사용합니다.
그룹화를 기반으로 결과를 집계할 수도 있습니다.
- GroupBy 함수를 사용합니다.
- Sum, Average 및 기타 집계 함수와 함께 AddColumns 함수를 사용하여 그룹 테이블의 집계인 새 열을 추가합니다.
- DropColumns 함수를 사용하여 그룹 테이블을 삭제합니다.
Ungroup 은 GroupBy에 공급된 레코드의 원래 순서를 유지하려고 합니다. 이것이 항상 가능하지는 않습니다(예: 원래 테이블에 공백 레코드가 있는 경우).
테이블은 문자열이나 숫자처럼 Power Apps의 값입니다. 테이블을 함수의 인수로 지정할 수 있으며 함수는 테이블을 반환할 수 있습니다. GroupBy 와 Ungroup 은 테이블을 수정하지 않습니다. 대신 테이블을 인수로 받아서 다른 테이블을 반환합니다. 자세한 내용은 테이블 작업을 참조하십시오.
참고
버전 3.24042 이전의 Power Apps에서 열 이름은 큰따옴표를 사용하여 텍스트 문자열로 지정되었으며 데이터 원본에 연결된 경우 논리적 이름이어야 했습니다. 예를 들어 큰따옴표가 있는 논리 이름 "cr43e_name"이 따옴표가 없는 표시 이름 Name 대신 사용되었습니다. 공백이 포함된 열 이름이 포함된 SharePoint 및 Excel 데이터 원본의 경우 각 공백은 "_x0020_"로 지정되었습니다. 예를 들어 "열 이름"은 "Column_x0020_Name"으로 지정되었습니다. 이 버전 이후 모든 앱은 이 문서에 설명된 새로운 구문으로 자동 업데이트되었습니다.
구문
GroupBy( 테이블, ColumnName1 [, ColumnName2 , ... ], 그룹열이름 )
- 표 - 필수. 그룹화할 테이블입니다.
- 열 이름 - 필수. 레코드를 그룹화할 기준이 되는 테이블의 열 이름입니다. 이 열은 결과 테이블의 열이 됩니다.
- GroupColumnName - 필수. ColumnName(s)에 없는 레코드 데이터의 스토리지에 대한 열 이름입니다.
그룹 해제( 테이블, 그룹열이름 )
- 표 - 필수. 그룹을 해제할 테이블입니다.
- GroupColumnName - 필수. GroupBy 함수를 사용하여 레코드 데이터 설정을 포함하는 열입니다.
예
컬렉션 만들기
ClearCollect( CityPopulations,
{ City: "London", Country: "United Kingdom", Population: 8615000},
{ City: "Berlin", Country: "Germany", Population: 3562000},
{ City: "Madrid", Country: "Spain", Population: 3165000},
{ City: "Rome", Country: "Italy", Population: 2874000},
{ City: "Paris", Country: "France", Population: 2273000},
{ City: "Hamburg", Country: "Germany", Population: 1760000},
{ City: "Barcelona", Country: "Spain", Population: 1602000},
{ City: "Munich", Country: "Germany", Population: 1494000},
{ City: "Milan", Country: "Italy", Population: 1344000}
)
Alt 키를 누른 상태에서 원본 단추를 선택합니다.
다음 데이터가 포함된 CityPopulations라는 컬렉션이 생성되었습니다.
이 컬렉션을 표시하려면 파일 메뉴에서 컬렉션을 선택한 다음, CityPopulations 컬렉션을 선택합니다. 컬렉션의 처음 5개 레코드가 나타납니다.
레코드 그룹화
또 다른 단추를 추가하고 Text 속성을 "그룹"으로 설정합니다.
이 단추의 OnSelect 속성을 다음 수식으로 설정합니다.
ClearCollect(CitiesByCountry, GroupBy(CityPopulations, Country, Cities))
Alt 키를 누른 상태에서 그룹 단추를 선택합니다.
CitiesByCountry라는 컬렉션이 생성되었으며 이전 컬렉션의 레코드가 Country 열을 기준으로 그룹화되어 있습니다.
이 컬렉션의 처음 5개 레코드를 표시하려면 파일 메뉴에서 컬렉션을 선택합니다.
한 국가/지역의 도시 인구를 표시하려면 해당 국가/지역(예: 독일)의 Cities 열에서 테이블 아이콘을 선택합니다.
레코드 필터링 및 그룹 해제
단추를 추가하고 단추가 "필터"로 표시되도록 Text 속성을 설정합니다.
이 단추의 OnSelect 속성을 다음 수식으로 설정합니다.
ClearCollect(CitiesByCountryFiltered, Filter(CitiesByCountry, "e" in Country))
Alt 키를 누른 상태에서 추가한 단추를 선택합니다.
CitiesByCountryFiltered라는 세 번째 컬렉션이 생성되었습니다. 이 컬렉션에는 이름에 "e"가 포함된 국가(즉, Spain 또는 Italy 제외)만 포함됩니다.
단추를 추가하고 단추가 "그룹 해제"로 표시되도록 Text 속성을 설정합니다.
이 단추의 OnSelect 속성을 다음 수식으로 설정합니다.
ClearCollect(CityPopulationsUngrouped, CitiesByCountryFiltered, Cities) 그룹 해제)
결과는 다음과 같습니다.
결과 집계
그룹화된 테이블에서 수행할 수 있는 또 다른 작업은 결과를 컴파일하는 것입니다. 다음 예제에서는 각 국가/지역의 주요 도시 인구를 합산합니다.
단추를 추가하고 단추가 "합계"로 표시되도록 Text 속성을 설정합니다.
"합계" 단추의 OnSelect 속성을 다음 수식으로 설정합니다.
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, '도시 인구 합계', Sum( 도시, 인구 ) ) )
결과는 다음과 같습니다.
AddColumns 는 기본 CitiesByCountry 컬렉션으로 시작하여 새로운 열 도시 인구 합계를 추가합니다. 이 열의 값은 Sum( Cities, Population ) 수식을 기반으로 행 단위로 계산됩니다. AddColumns 는 각 행의 Cities 열(테이블) 값을 제공하고, Sum 은 이 하위 테이블의 각 행의 Population 을 더합니다.
원하는 합계를 얻었으니 DropColumns를 사용하여 하위 테이블을 제거할 수 있습니다.
단추를 추가하고 단추가 “SumOnly”로 표시되도록 Text 속성을 설정합니다.
“SumOnly” 단추의 OnSelect 속성을 다음 수식으로 설정합니다.
ClearCollect(도시인구합계만, DropColumns(도시인구합계, 도시))
결과는 다음과 같습니다.
이 테이블의 그룹을 해제할 필요는 없습니다.