PowerApps에서 AddColumns, DropColumns, RenameColumns 및 ShowColumns 함수AddColumns, DropColumns, RenameColumns, and ShowColumns functions in PowerApps

해당 을 추가, 삭제, 이름 바꾸기 및 선택하여 테이블을 셰이프합니다.Shapes a table by adding, dropping, renaming, and selecting its columns.

개요Overview

이러한 함수는 해당 열을 조정하여 테이블을 셰이프합니다.These functions shape a table by adjusting its columns:

  • Lower 또는 Abs 와 같은 단일 열 함수를 사용하도록 여러 열을 포함하는 테이블을 단일 열로 축소시킵니다.Reduce a table that contains multiple columns down to a single column for use with single-column functions, such as Lower or Abs.
  • 테이블에 계산된 열을 추가합니다(예: QuantityUnit Price를 곱한 결과를 표시하는 Total Price 열).Add a calculated column to a table (for example, a Total Price column that shows the results of multiplying Quantity by Unit Price).
  • 사용자에게 표시하거나 수식에서 사용할 수 있도록 열의 이름을 더 의미 있게 변경합니다.Rename a column to something more meaningful, for display to users or for use in formulas.

테이블은 문자열이나 숫자처럼 PowerApps의 값입니다.A table is a value in PowerApps, just like a string or a number. 테이블을 수식의 인수로 지정할 수 있으며 함수는 테이블을 결과로 반환할 수 있습니다.You can specify a table as an argument in a formula, and functions can return a table as a result.

참고

이 항목에 설명 된 함수는 원래 테이블을 수정 하지 마세요.The functions that this topic describes don't modify the original table. 대신, 해당 테이블을 인수로 사용 하며 적용 된 변환을 사용 하 여 새 테이블을 반환 합니다.Instead, they take that table as an argument and return a new table with a transform applied. 자세한 내용은 테이블 작업을 참조하세요.See working with tables for more details.

이러한 함수를 사용하여 데이터 원본의 열을 수정할 수는 없습니다.You can't modify the columns of a data source by using these functions. 데이터는 해당 원본에서 수정해야 합니다.You must modify the data at its source. Collect 함수를 사용하여 열을 컬렉션에 추가할 수 있습니다.You can add columns to a collection with the Collect function. 자세한 내용은 데이터 원본 작업을 참조하세요.See working with data sources for more details.

설명Description

AddColumns 함수는 열을 테이블에 추가하고, 수식은 해당 열의 값을 정의합니다.The AddColumns function adds a column to a table, and a formula defines the values in that column. 기존 열은 수정되지 않고 유지됩니다.Existing columns remain unmodified.

수식은 각 테이블의 레코드에 대해 평가됩니다.The formula is evaluated for each record of the table.

현재 처리 중인 레코드의 필드는 수식 안에서 사용할 수 있습니다.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.

DropColumns 함수는 테이블에서 열을 제외합니다.The DropColumns function excludes columns from a table. 다른 모든 열은 수정되지 않고 유지됩니다.All other columns remain unmodified. DropColumns는 열을 제외하고 ShowColumns는 열을 포함합니다.DropColumns excludes columns, and ShowColumns includes columns.

RenameColumns 함수를 사용하여 테이블에 포함된 열의 이름(바꾸려는 이전 이름)과 테이블에 포함되지 않은 열의 이름(사용하려는 새 이름)을 지정하는 하나 이상의 인수 쌍을 제공하여 하나 이상의 테이블 열 이름을 바꿉니다.Use the RenameColumns function to rename one or more columns of a table by providing at least one argument pair that specifies the name of a column that the table contains (the old name, which you want to replace) and the name of a column that the table doesn't contain (the new name, which you want to use). 이전 이름은 테이블에 이미 있어야 하고 새 이름이 없어야 합니다.The old name must already exist in the table, and the new name must not exist. 각 열 이름은 이전 열 이름이거나 새 열 이름이므로 인수 목록에 한 번만 나올 수 있습니다.Each column name may appear only once in the argument list as either an old column name or a new column name. 열 이름을 기존 열 이름으로 바꾸려면 먼저 DropColumns를 사용하여 기존 열을 삭제하거나 하나의 RenameColumns 함수를 다른 함수에 중첩하여 기존 열의 이름을 다른 열 중 하나로 바꿉니다.To rename a column to an existing column name, first drop the existing column with DropColumns, or rename the existing column out of the way by nesting one RenameColumns function within another.

ShowColumns 함수는 테이블의 열을 포함하고 다른 모든 열을 삭제합니다.The ShowColumns function includes columns of a table and drops all other columns. ShowColumns를 사용하여 다중 열 테이블에서 단일 열 테이블을 만들 수 있습니다.You can use ShowColumns to create a single-column table from a multi-column table. ShowColumns는 열을 포함하고 DropColumns는 열을 제외합니다.ShowColumns includes columns, and DropColumns excludes columns.

이러한 모든 함수의 경우 적용된 변환을 사용하는 새 테이블이 만들어집니다.For all these functions, the result is a new table with the transform applied. 원래 테이블은 수정되지 않습니다.The original table isn't modified. 수식을 사용하여 기존 테이블을 수정할 수 없습니다.You can't modify an existing table with a formula. SharePoint, Common Data Service, SQL Server 및 기타 데이터 원본 목록은 엔터티 및 스키마라고도 하는 테이블의 열을 수정하기 위한 도구를 제공합니다.SharePoint, Common Data Service, SQL Server, and other data sources provide tools for modifying the columns of lists, entities, and tables, which are often referred to as the schema. 이 문서에서 포함된 함수는 추가 사용을 위해 출력 테이블에 원래 테이블을 수정하지 않고 입력 테이블만 변환합니다The functions in this topic only transform an input table, without modifying the original, into an output table for further use.

이러한 함수에 대한 인수는 위임을 지원합니다.The arguments to these functions support delegation. 예를 들어, 관련된 레코드를 가져오는데 인수로 사용된 Filter 함수는 '[dbo]. [ AllListings]' 데이터 원본이 백만 행을 포함하는 경우라도 모든 리스팅을 검색합니다.For example, a Filter function used as an argument to pull in related records searches through all listings, even if the '[dbo].[AllListings]' data source contains a million rows:

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

그러나 이러한 함수의 출력은 비-위임 레코드 제한의 적용을 받습니다.However, the output of these functions is subject to the non-delegation record limit. 이 예제에서는 RealEstateAgents 데이터 원본에 레코드가 501개 이상 존재하더라도 500개의 레코드만 반환됩니다.In this example, only 500 records are returned even if the RealEstateAgents data source has 501 or more records.

이런 방식으로 AddColumns를 사용하는 경우, Filter 함수는 RealEstateAgents의 해당 첫 번째 레코드의 각 데이터 원본에 대한 별도 호출을 사용해야 하므로, 많은 경우 네트워크 트래픽이 발생합니다.If you use AddColumns in this manner, Filter must make separate calls to the data source for each of those first records in RealEstateAgents, which causes a lot of network chatter. 만약 [dbo]. [ AllListings] 이 아주 작고 변경 되지 않은 경우라면, 앱이 시작할 때 데이터 원본을 캐시하도록 OnStart에서 Collect 함수를 호출할 수 있습니다.If [dbo].[AllListings] is small enough and doesn't change often, you could call the Collect function in OnStart to cache the data source in your app when it starts. 또는 사용자가 요청하는 경우에만 관련된 레코드를 가져올 수 있도록 앱을 재구성할 수 있습니다.As an alternative, you could restructure your app so that you pull in the related records only when the user asks for them.

구문Syntax

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

  • Table - 필수 항목입니다.Table - Required. 연산을 수행할 테이블입니다.Table to operate on.
  • ColumnName(s) - 필수 항목입니다.ColumnName(s) - Required. 추가할 열의 이름입니다.Name(s) of the column(s) to add. 이 인수에 대해 문자열(예를 들어 큰따옴표가 포함된 “Name” )을 지정해야 합니다.You must specify a string (for example, "Name" with double quotes included) for this argument.
  • Formula(s) - 필수 항목입니다.Formula(s) - Required. 각 레코드에 대해 평가할 수식입니다.Formula(s) to evaluate for each record. 결과는 해당하는 새 열 값으로 추가됩니다.The result is added as the value of the corresponding new column. 이 수식에서 테이블의 다른 열을 참조할 수 있습니다.You can reference other columns of the table in this formula.

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

  • Table - 필수 항목입니다.Table - Required. 연산을 수행할 테이블입니다.Table to operate on.
  • ColumnName(s) - 필수 항목입니다.ColumnName(s) - Required. 삭제할 열의 이름입니다.Name(s) of the column(s) to drop. 이 인수에 대해 문자열(예를 들어 큰따옴표가 포함된 “Name” )을 지정해야 합니다.You must specify a string (for example, "Name" with double quotes included) for this argument.

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

  • Table - 필수 항목입니다.Table - Required. 연산을 수행할 테이블입니다.Table to operate on.
  • OldColumnName -필수 항목입니다.OldColumnName - Required. 원래 테이블에서 이름을 바꿀 열의 이름입니다.Name of a column to rename from the original table. 이 요소는 인수 쌍의 맨 처음(또는 수식에 둘 이상의 쌍이 포함된 경우 각 인수 쌍의 처음)에 나타납니다.This element appears first in the argument pair (or first in each argument pair if the formula includes more than one pair). 이 이름은 문자열(예를 들어 큰따옴표가 포함된 “Name” )이어야 합니다.This name must be a string (for example "Name" with double quotation marks included).
  • NewColumnName - 필수 항목입니다.NewColumnName - Required. 교체 이름입니다.Replacement name. 이 요소는 인수 쌍 마지막(또는 수식에 둘 이상의 쌍이 포함된 경우 각 인수 쌍의 마지막)에 나타납니다.This element appears last in the argument pair (or last in each argument pair if the formula includes more than one pair). 이 인수에 대해 문자열(예를 들어 큰따옴표가 포함된 “Customer Name” )을 지정해야 합니다.You must specify a string (for example, "Customer Name" with double quotation marks included) for this argument.

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

  • Table - 필수 항목입니다.Table - Required. 연산을 수행할 테이블입니다.Table to operate on.
  • ColumnName(s) - 필수 항목입니다.ColumnName(s) - Required. 포함할 열의 이름입니다.Name(s) of the column(s) to include. 이 인수에 대해 문자열(예를 들어 큰따옴표가 포함된 “Name” )을 지정해야 합니다.You must specify a string (for example, "Name" with double quotes included) for this argument.

Examples

이 섹션의 예제에서는 다음 테이블의 데이터가 포함된 IceCreamSales 데이터 원본을 사용합니다.The examples in this section use the IceCreamSales data source, which contains the data in this table:

이러한 예제는 모두 IceCreamSales 데이터 원본을 수정하지 않습니다.None of these examples modify the IceCreamSales data source. 각 함수는 데이터 원본의 값을 테이블로 변환하고 결과로 해당 값을 반환합니다.Each function transforms the value of the data source as a table and returns that value as the result.

수식Formula 설명Description 결과Result
AddColumns( IceCreamSales, “Revenue”, UnitPrice * QuantitySold )AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold ) Revenue 열을 결과에 추가합니다.Adds a Revenue column to the result. 각 레코드의 경우 UnitPrice * QuantitySold가 평가되고 결과가 새 열에 배치됩니다.For each record, UnitPrice * QuantitySold is evaluated, and the result is placed in the new column.
DropColumns( IceCreamSales, “UnitPrice” )DropColumns( IceCreamSales, "UnitPrice" ) UnitPrice 열을 결과에서 제외합니다.Excludes the UnitPrice column from the result. 이 함수를 사용하여 열을 제외하고 ShowColumns를 사용하여 포함합니다.Use this function to exclude columns, and use ShowColumns to include them.
ShowColumns( IceCreamSales, “Flavor” )ShowColumns( IceCreamSales, "Flavor" ) Flavor 열만 결과에 포함합니다.Includes only the Flavor column in the result. 이 함수를 사용하여 열을 포함하고 DropColumns를 사용하여 제외합니다.Use this function include columns, and use DropColumns to exclude them.
RenameColumns( IceCreamSales, “UnitPrice”, “Price”)RenameColumns( IceCreamSales, "UnitPrice", "Price") 결과에서 UnitPrice의 열 이름을 바꿉니다.Renames the UnitPrice column in the result.
RenameColumns( IceCreamSales, “UnitPrice”, “Price”, “QuantitySold”, “Number”)RenameColumns( IceCreamSales, "UnitPrice", "Price", "QuantitySold", "Number") 결과에서 UnitPriceQuantitySold 열의 이름을 바꿉니다.Renames the UnitPrice and QuantitySold columns in the result.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, “Revenue”,
UnitPrice * QuantitySold ),
“UnitPrice”, “Price” ),
“Quantity” )
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, "Revenue",
UnitPrice * QuantitySold ),
"UnitPrice", "Price" ),
"Quantity" )
다음 테이블 변환을 수식의 내부부터 순서대로 수행합니다.Performs the following table transforms in order, starting from the inside of the formula:
  1. UnitPrice * Quantity의 레코드별 계산을 기반으로 Revenue 열을 추가합니다.Adds a Revenue column based on the per-record calculation of UnitPrice * Quantity.
  2. UnitPrice의 이름을 Price로 변경합니다.Renames UnitPrice to Price.
  3. Quantity 열을 제외합니다.Excludes the Quantity column.
순서는 중요합니다.Note that order is important. 예를 들어 이름이 변경된 후에는 UnitPrice로 계산할 수 없습니다.For example, we can't calculate with UnitPrice after it has been renamed.

단계별 가이드Step by step

이 항목의 앞부분에서 예제 중 일부를 사용해 보겠습니다.Let's try some of the examples from earlier in this topic.

  1. 단추 컨트롤을 추가하여 컬렉션을 생성하고 해당 OnSelect 속성을 다음 수식으로 설정합니다.Create a collection by adding a Button control and setting its OnSelect property to this formula:

    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 키를 누른 채 단추를 선택하여 수식을 실행합니다.Run the formula by selecting the button while holding down the Alt key.

  3. 두 번째 단추 컨트롤을 추가하고 해당 OnSelect 속성을 다음 수식으로 설정한 다음 실행합니다.Add a second Button control, set its OnSelect property to this formula, and then run it:

    ClearCollect( FirstExample, 
        AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold )
    ) 
    
  4. 파일 메뉴에서 컬렉션을 선택한 후, IceCreamSales를 선택하여 컬렉션을 표시합니다.On the File menu, select Collections, and then select IceCreamSales to show that collection.

    이 그래픽에서 볼 수 있듯이 두 번째 수식은 이 컬렉션을 수정하지 않았습니다.As this graphic shows, the second formula didn't modify this collection. AddColumns 함수는 읽기 전용 인수로 IceCreamSales를 사용합니다. 해당 함수는 인수가 참조하는 테이블을 수정하지 않습니다.The AddColumns function used IceCreamSales as a read-only argument; the function didn't modify the table to which that argument refers.

    수입 열이 포함 되지 않은 아이스크림 판매 컬렉션의 세 개의 레코드를 보여 주는 컬렉션 뷰어

  5. FirstExample을 선택합니다.Select FirstExample.

    이 그림에서 두 번째 수식은 열이 추가된 새 테이블을 반환합니다.As this graphic shows, the second formula returned a new table with the added column. ClearCollect 함수는 FirstExample 컬렉션의 새 테이블을 캡처하며, 원본을 수정하지 않고 함수를 통해 적용된 대로 원래 테이블에 항목을 추가합니다:The ClearCollect function captured the new table in the FirstExample collection, adding something to the original table as it flowed through the function without modifying the source:

    새 수입 열이 포함 된 첫 번째 예에서는 컬렉션의 세 개의 레코드를 보여 주는 컬렉션 뷰어