PowerApps에서 Update 및 UpdateIf 함수Update and UpdateIf functions in PowerApps

데이터 원본레코드를 업데이트합니다.Updates records in a data source.


Update 함수Update function

Update 함수는 데이터 원본의 전체 레코드를 교체합니다.Use the Update function to replace an entire record in a data source. 반대로 UpdateIfPatch 함수는 다른 값은 그대로 두면서 레코드에서 하나 이상의 값을 수정합니다.In contrast, the UpdateIf and the Patch functions modify one or more values in a record, leaving the other values alone.

컬렉션의 경우 전체 레코드가 일치해야 합니다.For a collection, the entire record must match. 컬렉션은 중복 레코드를 허용하므로 여러 레코드가 일치할 수도 있습니다.Collections allow duplicate records, so multiple records might match. All 인수를 사용하여 레코드의 모든 복사본을 업데이트하거나, 레코드 중 복사본 하나만 업데이트할 수 있습니다.You can use the All argument to update all copies of a record; otherwise, only one copy of the record is updated.

데이터 원본에서 열의 값이 자동으로 생성되는 경우 해당 의 값을 재확인해야 합니다.If the data source generates a column's value automatically, the value of that column must be reaffirmed.

UpdateIf 함수UpdateIf function

UpdateIf 함수는 하나 이상의 조건에 일치하는 하나 이상의 레코드에서 하나 이상의 값을 수정합니다.Use the UpdateIf function to modify one or more values in one or more records that match one or more conditions. 조건은 결과가 true 또는 false가 되는 수식이 될 수 있고 이름으로 데이터 원본의 열을 참조할 수 있습니다.The condition can be any formula that results in a true or false and can reference columns of the data source by name. 함수는 각 레코드에 대한 조건을 평가하고 결과가 true인 레코드를 수정합니다.The function evaluates the condition for each record and modifies any record for which the result is true.

수정을 지정하려면 새 속성 값을 포함하는 변경 레코드를 사용합니다.To specify a modification, use a change record that contains new property values. 중괄호를 사용하여 이 변경 레코드 인라인을 제공하는 경우 속성 수식은 수정되는 레코드의 속성을 참조할 수 있습니다.If you provide this change record inline with curly braces, property formulas can reference properties of the record that's being modified. 이 동작을 사용하여 수식에 따라 레코드를 수정할 수 있습니다.You can use this behavior to modify records based on a formula.

UpdateIf와 유사하게 Patch 함수를 사용하여 다른 열에 영향을 주지 않으면서 레코드의 특정 열을 변경할 수 있습니다.Similar to UpdateIf, you can also use the Patch function to change specific columns of a record without affecting other columns.

UpdateUpdateIf는 모두 수정된 데이터 원본을 테이블로 반환합니다.Both Update and UpdateIf return the modified data source as a table. 두 함수 모두 동작 수식에서 사용해야 합니다.You must use either function in a behavior formula.


데이터 원본에 사용할 때 이 함수는 위임할 수 없습니다.When used with a data source, these functions can't be delegated. 데이터 원본의 첫 번째 부분만 검색된 다음 함수가 적용됩니다.Only the first portion of the data source will be retrieved and then the function applied. 결과가 전체 상황을 나타내지 못할 수 있습니다.The result may not represent the complete story. 해당하는 경우 이러한 제한 사항을 상기시키고 위임 가능한 대안으로 전환하도록 제안하기 위해 수식 작성 시 파란색 점이 표시됩니다.A blue dot will appear at authoring time to remind you of this limitation and to suggest switching to delegable alternatives where possible. 자세한 내용은 위임 개요를 참조하세요.For more information, see the delegation overview.


Update( DataSource, OldRecord, NewRecord [, All ] )Update( DataSource, OldRecord, NewRecord [, All ] )

  • DataSource – 필수 항목입니다.DataSource – Required. 교체할 레코드가 포함된 데이터 원본입니다.The data source that contains the record that you want to replace.
  • OldRecord – 필수 항목입니다.OldRecord – Required. 교체할 레코드입니다.The record to replace.
  • NewRecord – 필수 항목입니다.NewRecord – Required. 대체 레코드입니다.The replacement record. 이는 변경 레코드가 아닙니다.This isn't a change record. 전체 레코드가 변경되고, 누락된 속성은 blank를 포함하게 됩니다.The entire record is replaced, and missing properties will contain blank.
  • All – 선택 사항입니다.All – Optional. 컬렉션에서 동일한 레코드가 두 번 이상 나타날 수 있습니다.In a collection, the same record may appear more than once. All 인수를 지정하여 레코드의 모든 복사본을 제거할 수 있습니다.Specify the All argument to remove all copies of the record.

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – 필수 항목입니다.DataSource – Required. 제거할 레코드가 포함된 데이터 원본입니다.The data source that contains the record or records that you want to modify.
  • Condition(s) – 필수 항목입니다.Condition(s) – Required. 수정할 레코드에 대해 true로 평가되는 수식입니다.A formula that evaluates to true for the record or records that you want to modify. 수식에서 DataSource의 열 이름을 사용할 수 있습니다.You can use column names of DataSource in the formula.
  • ChangeRecord(s) – 필수 항목입니다.ChangeRecord(s) - Required. 각 해당 조건에서 조건을 충족하는 DataSource의 레코드에 적용할 새 속성 값의 변경 레코드입니다.For each corresponding condition, a change record of new property values to apply to records of DataSource that satisfy the condition. 중괄호를 사용하여 레코드 인라인을 제공하는 경우 기존 레코드의 속성 값을 속성 수식에 사용할 수 있습니다.If you provide the record inline using curly braces, property values of the existing record can be used in the property formulas.


이러한 예제에서는 다음 테이블의 데이터로 시작되며 이름이 IceCream인 데이터 원본의 레코드를 교체 또는 수정하게 됩니다.In these examples, you'll replace or modify records in a data source that's named IceCream and that starts with the data in this table:

수식Formula 설명Description 결과Result
Update( IceCream,
First( Filter( IceCream, Flavor=“Chocolate” ) ), { ID: 1, Flavor: “Mint Chocolate”, Quantity:150 } )
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
데이터 원본에서 레코드를 교체합니다.Replaces a record from the data source.

IceCream 데이터 원본이 수정되었습니다.The IceCream data source has been modified.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } )UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Quantity150보다 큰 레코드를 수정합니다.Modifies records that have a Quantity that is greater than 150. Quantity 필드는 10씩 증가하고 다른 필드는 수정되지 않습니다.The Quantity field is incremented by 10, and no other fields are modified.

IceCream 데이터 원본이 수정되었습니다.The IceCream data source has been modified.
Update( IceCream,
First( Filter( IceCream, Flavor=“Strawberry” ) ),
{ ID: 3, Flavor: “Strawberry Swirl”} )
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
데이터 원본에서 레코드를 교체합니다.Replaces a record from the data source. Quantity 속성이 대체 레코드에서 적용되지 않아 해당 속성이 결과에서 blank로 나타납니다.The Quantity property hasn't been supplied in the replacement record, so that property will be blank in the result.

IceCream 데이터 원본이 수정되었습니다.The IceCream data source has been modified.
UpdateIf( IceCream, true, { Quantity: 0 } )UpdateIf( IceCream, true, { Quantity: 0 } ) 데이터 원본의 모든 레코드에 대해 Quantity 속성의 값을 0으로 설정합니다.Sets the value of the Quantity property for all records in the data source to 0.

IceCream 데이터 원본이 수정되었습니다.The IceCream data source has been modified.

단계별 가이드Step by step

  1. Inventory라는 컬렉션을 가져오거나 만들고, 갤러리에 데이터 표시의 설명에 따라 갤러리에 표시합니다.Import or create a collection named Inventory, and show it in a gallery as Show data in a gallery describes.

  2. 갤러리의 이름을 ProductGallery로 지정합니다.Name the gallery ProductGallery.

  3. UnitsSold라는 슬라이더를 추가하고, 해당 Max 속성을 다음 식으로 설정합니다.Add a slider named UnitsSold, and set its Max property to this expression:

  4. 단추 하나를 추가하고 이 수식에 OnSelect 속성을 설정합니다.Add a button, and set its OnSelect property to this formula:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. F5 키를 눌러 갤러리에서 제품을 선택하고, 슬라이더로 값을 지정한 다음, 단추를 선택합니다.Press F5, select a product in the gallery, specify a value with the slider, and then select the button.

    지정한 제품의 재고에서 단위 개수가 지정한 크기로 감소합니다.The number of units in stock for the product you specified decreases by the amount that you specified.