AddColumns, DropColumns, RenameColumns 및 ShowColumns 함수

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

해당 을 추가, 삭제, 이름 바꾸기 및 선택하여 테이블을 셰이프합니다.

**ForAll 함수는 기존 열에서 생성된 새 레코드의 테이블을 반환하여 테이블을 구성하는 데에도 사용할 수 있습니다.

개요

이러한 함수는 해당 열을 조정하여 테이블을 셰이프합니다.

  • Lower 또는 Sqrt와 같은 단일 열 함수를 사용하도록 여러 열을 포함하는 테이블을 단일 열로 축소합니다.
  • 테이블에 계산된 열을 추가합니다(예: QuantityUnit Price를 곱한 결과가 Total Price 열에 표시됨).
  • 사용자에게 표시하거나 수식에서 사용할 수 있도록 열의 이름을 더 의미 있는 이름으로 변경합니다.

테이블은 문자열이나 숫자처럼 Power Apps의 값입니다. 테이블을 수식의 인수로 지정할 수 있으며 함수는 테이블을 결과로 반환할 수 있습니다.

노트

이 항목에서 설명하는 함수는 원래 테이블을 수정하지 않습니다. 대신 테이블을 인수로 사용하며 변환을 적용하여 새 테이블을 반환합니다. 자세한 내용은 테이블 작업을 참조하세요.

이러한 함수를 사용하여 데이터 원본의 열을 수정할 수 없습니다. 데이터는 해당 원본에서 수정해야 합니다. Collect 함수를 사용하여 컬렉션에 열을 추가할 수 있습니다. 자세한 내용은 데이터 원본 작업을 참조하십시오.

Description

AddColumns 함수는 테이블에 열을 추가하고, 수식은 해당 열의 값을 정의합니다. 기존 열은 수정되지 않은 상태로 유지됩니다.

수식은 테이블의 각 레코드에 대해 계산됩니다.

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

DropColumns 함수는 테이블에서 열을 제외합니다. 다른 모든 열은 수정되지 않은 상태로 유지됩니다. DropColumns는 열을 제외하고 ShowColumns는 열을 포함합니다.

RenameColumns 함수를 사용하여 테이블에 포함된 열의 이름(바꾸려는 이전 이름)과 테이블에 포함되지 않은 열의 이름(사용하려는 새 이름)을 지정하는 하나 이상의 인수 쌍을 제공하여 하나 이상의 테이블 열 이름을 바꿉니다. 이전 이름은 테이블에 이미 있어야 하고 새 이름은 없어야 합니다. 각 열 이름은 인수 목록에 이전 열 이름이나 새 열 이름으로 한 번만 나타날 수 있습니다. 열 이름을 기존 열 이름으로 바꾸려면 먼저 DropColumns를 사용하여 기존 열을 삭제하거나 하나의 RenameColumns 함수를 다른 함수에 중첩하여 기존 열의 이름을 다른 이름으로 변경하십시오.

ShowColumns 함수는 테이블의 열을 포함하고 다른 모든 열을 삭제합니다. ShowColumns를 사용하여 여러 열 테이블에서 단일 열 테이블을 만들 수 있습니다. ShowColumns는 열을 포함하고 DropColumns는 열을 제외합니다.

이러한 모든 함수의 경우 변환을 적용하여 새 테이블이 만들어집니다. 원래 테이블은 수정되지 않습니다. 수식을 사용하여 기존 테이블을 수정할 수 없습니다. SharePoint, Microsoft Dataverse, SQL Server 및 기타 데이터 원본은 종종 스키마라고 하는 목록, 테이블 및 테이블의 열을 수정하기 위한 도구를 제공합니다. 이 문서의 함수는 원본을 수정하지 않고 입력 테이블을 나중에 사용할 수 있도록 출력 테이블로만 변환합니다.

이러한 함수에 대한 인수는 위임을 지원합니다. 예를 들어, 관련 레코드를 가져 오는 인수로 사용되는 Filter 함수는 '[dbo].[AllListings]' 데이터 원본에 백만 개의 행이 있어도 모든 목록을 통해 검색합니다.

AddColumns( RealEstateAgents,
   Listings,
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

그러나 이러한 함수의 출력은 위임되지 않은 레코드 제한을 따릅니다. 이 예제에서 RealEstateAgents 데이터 원본에 501개 이상의 레코드가 있어도 500개의 레코드만 반환됩니다.

AddColumns를 이런 방식으로 사용하는 경우 Filter는 많은 네트워크 채팅을 유발하는 RealEstateAgents의 이러한 첫 번째 레코드 각각에 대해 데이터 원본을 별도로 호출해야 합니다. [dbo](.[AllListings]이 충분히 작고 자주 변경되지 않는 경우. OnStart에서 Collect 함수를 호출하여 앱이 시작될 때 앱의 데이터 원본을 캐시할 수 있습니다. 대안으로, 사용자가 요청할 때만 관련 레코드를 가져 오도록 앱을 재구성 할 수 있습니다.

참고

버전 3.24042 이전의 Power Apps에서 열 이름은 큰따옴표를 사용하여 텍스트 문자열로 지정되었으며 데이터 원본에 연결된 경우 논리적 이름이어야 했습니다. 예를 들어 큰따옴표가 있는 논리 이름 "cr43e_name"이 따옴표가 없는 표시 이름 Name 대신 사용되었습니다. 공백이 포함된 열 이름이 포함된 SharePoint 및 Excel 데이터 원본의 경우 각 공백은 "_x0020_"로 지정되었습니다. 예를 들어 "열 이름""Column_x0020_Name"으로 지정되었습니다. 이 버전 이후 모든 앱은 이 문서에 설명된 새로운 구문으로 자동 업데이트되었습니다.

구문

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table – 필수 항목입니다. 연산을 수행할 테이블입니다.
  • ColumnName(s) - 필수 항목입니다. 추가할 열의 이름입니다.
  • Formula(s) – 필수 항목입니다. 각 레코드에 대해 평가할 수식입니다. 결과는 해당하는 새 열 값으로 추가됩니다. 이 수식에서 테이블의 다른 열을 참조할 수 있습니다.

DropColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – 필수 항목입니다. 연산을 수행할 테이블입니다.
  • ColumnName(s) - 필수 항목입니다. 삭제할 열의 이름입니다.

RenameColumns( Table, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )

  • Table – 필수 항목입니다. 연산을 수행할 테이블입니다.
  • OldColumnName -필수 항목입니다. 원래 테이블에서 이름을 변경할 열의 이름입니다. 이 요소는 인수 쌍의 처음(또는 수식에 둘 이상의 쌍이 포함된 경우 각 인수 쌍의 처음)에 나타납니다.
  • NewColumnName - 필수 항목입니다. 교체 이름입니다. 이 요소는 인수 쌍의 마지막(또는 수식에 둘 이상의 쌍이 포함된 경우 각 인수 쌍의 마지막)에 나타납니다.

ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – 필수 항목입니다. 연산을 수행할 테이블입니다.
  • ColumnName(s) - 필수 항목입니다. 포함할 열의 이름입니다.

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

IceCream 예.

이러한 예제는 모두 IceCreamSales 데이터 원본을 수정하지 않습니다. 각 함수는 데이터 원본의 값을 테이블로 변환하고 결과로 해당 값을 반환합니다.

수식 Description Result
AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) Revenue 열을 결과에 추가합니다. 각 레코드의 경우 UnitPrice * QuantitySold가 계산되고 결과가 새 열에 배치됩니다. Srawberry, Chocolate 및 Vanilla의 결과.
DropColumns( IceCreamSales, UnitPrice ) UnitPrice 열을 결과에서 제외합니다. 이 함수를 사용하여 열을 제외하고 ShowColumns를 사용하여 열을 포함합니다. QuantitySold 열만 있는 Strawberry, Chocolate, Vanilla의 결과.
ShowColumns( IceCreamSales, Flavor ) Flavor 열만 결과에 포함합니다. 이 함수를 사용하여 열을 포함하고 DropColumns를 사용하여 열을 제외합니다. Flavor 열만.
RenameColumns( IceCreamSales, UnitPrice, Price) 결과에서 UnitPrice 열 이름을 변경합니다. Flavor, Price 및 Revenue의 결과.
RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) 결과에서 UnitPriceQuantitySold 열 이름을 변경합니다. Flavor, Price, Revenue로 3개의 IceCreams 및 열 결과.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Revenue,
UnitPrice * QuantitySold ),
UnitPrice, Price ),
Quantity )
수식 내부부터 시작하여 다음 테이블 변환을 순서대로 수행합니다.
  1. UnitPrice * Quantity의 레코드별 계산을 기준으로 Revenue 열을 추가합니다.
  2. UnitPrice의 이름을 Price로 변경합니다.
  3. Quantity 열을 제외합니다.
순서가 중요합니다. 예를 들어 이름이 변경된 후에는 UnitPrice로 계산할 수 없습니다.
단가에 대한 IceCream 예.

단계별

이 문서의 앞부분에서 몇 가지 예를 살펴 보겠습니다.

  1. Button 컨트롤을 추가하고 해당 OnSelect 속성을 다음 수식으로 설정하여 컬렉션을 만듭니다.

    ClearCollect( IceCreamSales,
       Table(
           { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 },
           { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 },
           { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 }
       )
    )
    
  2. Alt 키를 누른 상태에서 단추를 선택하여 수식을 실행합니다.

  3. 두 번째 Button 컨트롤을 추가하고, OnSelect 속성을 다음 수식으로 설정한 다음 실행합니다.

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. File 메뉴에서 Collections를 선택한 다음 IceCreamSales를 선택하여 해당 컬렉션을 표시합니다.

    이 그래픽에서 볼 수 있듯이 두 번째 수식은 이 컬렉션을 수정하지 않았습니다. AddColumns 함수에서 IceCreamSales가 읽기 전용 인수로 사용되었습니다. 이 함수는 해당 인수가 참조하는 테이블을 수정하지 않았습니다.

    Revenue 열이 포함되지 않은 Ice Cream Sales 컬렉션의 세 레코드를 보여주는 컬렉션 뷰어.

  5. FirstExample을 선택합니다.

    이 그래픽에서 볼 수 있듯이 두 번째 수식은 열이 추가된 새 테이블을 반환했습니다. ClearCollect 함수는 FirstExample 컬렉션에서 새 테이블을 캡처했고, 원본을 수정하지 않고 함수를 통해 흐름에 따라 원래 테이블에 무언가를 추가했습니다.

    새 Revenue 열을 포함하는 First Example 컬렉션의 세 레코드를 표시하는 컬렉션 뷰어.

구성 요소의 열 매핑

열 매핑을 참조하십시오.