Patch関数とは
データ ソース 内で 1 つ以上の レコード を変更または作成するか、データ ソースの外部でレコードをマージします。
公式より引用
構文
データソースのレコードを変更または作成する場合
Patch(データソース,変更または作成するレコード, {変更または作成するレコード1:変更または作成後の値1} [,{変更または作成するレコード2:変更または作成後の値2}, … ])
データソース:変更または作成するレコードを含むデータソース
変更または作成するレコード:ここで指定したレコードがデータソースからだった場合はそのレコードが変更され、 Defaults の結果を使用した場合はレコードが作成されます。
変更または作成するレコード、値:変更または作成するレコードで指定したレコードまたはDefalutsの結果によって変更または作成するレコードとその値
レコードを結合する場合
Patch( レコード1, レコード2 [, …] )
レコード:最低2個以上の結合するレコード
使い方
実際に画面を見ながら使い方を見ていきましょう。Collect関数で作成したコレクションを使用して進めていきます。
Collect関数を使用して以下のようなコレクションを作成します。以下のレコードに対してPatch関数で操作していきます。
データソースのレコードを変更する場合

ボタンを追加し、以下のコードを記入します。
Patch(テスト,First(Filter(テスト, 人= "A" ) ), { 人: "B" } )
これでボタンを押すと”人”列がAさんである最初のレコードがBさんに変更されます。

UpdateIf関数と同じように指定していないレコードの値はそのままです。
データソースのレコードを変更する場合
コレクションの値は前項の最初のものと同じです。

このコレクションに以下のコードを記入したボタンを追加することで新しいレコードを作成します。
Patch(テスト,Defaults(テスト), { 人: "B" } )

このようにDefaults関数を使用することでコレクションの規定値を追加することが出来ます。今回は規定値を設定していないので”人”列以外は空白が入力されました。
レコードを結合する場合
後日追記
使用例
UpdateIf関数のようにデータソースの値を変更することができたり、Collect関数のようにレコードを追加したりすることができます。また、レコードを結合する機能も持っていて万能な関数です。
コメント