タグ別アーカイブ: 置き換え

Update関数とUpdateIf関数について~レコードの置き換え~

【今回はレコードの置き換えを行うUpdate関数とUpdateIf関数について解説を行います】

過去に解説したPatch関数と今回解説するUpdate関数とUpdateIf関数を組み合わせて活用できるようになると、レコードの扱い格段に強くなれます

Update関数

レコードの全体を置き換える関数になります

この全体の意味合いは、特定の列だけ「置き換えないということがない」といことになります

myCollect

今回はデータソース:myCollect*内で価格が100のもののうち、最初のレコードを置き換えます

*myCollectはGalleryのItemsになり、列は価格:myPriceと数量:myQuantityになります

Update関数の文法は次のようになります

Update(データソース,対象レコード,{列1:値1,列2:値2・・・})

価格が100のもののうち、最初のレコードを対象にするにはFilter関数とFirst関数を使用します

First(Filter(myCollect,myPrice=100))

上記の関数を組み合わせると、今回の関数は次のようになります

Update(myCollect,First(Filter(myCollect,myPrice=100)),{myPrice:0,myQuantity:0})

これで価格が100の最初の行が価格も数量も0に置き換えることができました

UpdateIf関数

UpdateIf関数はエクセルワークシート関数のSumIfs関数と同じように、条件に合うものを一括で処理します

文法は次の通りとなります

UpdateIf(データソース,対象レコード(条件式),{列1:値1,列2:値2・・・})

Update関数とは違い、特定の列だけ置き換えることもできます

今回は価格が100未満のものを一括で0にします

UpdateIf(myCollect,myPrice<100,{myPrice:0,myQuantity:0})

下のGIF画像内で価格が100未満のものが置き換えられています

もちろん、置き換える数量をテキストボックスで指定することもできます

テキストボックス:txtModifyを組み入れたUpdateIf関数の式は次の通りとなります

UpdateIf(myCollect,myPrice<100,{myPrice:0,myQuantity:Value(txtModify.Text)})

価格が100未満のデータがテキストボックスの数字で置き換えられます

<まとめ>

今回はUpdate関数とUpdateIf関数について解説させて頂きました

Patch関数、Update関数、UpdateIf関数はそれぞれ機能が似ているようでそれぞれ違いがあるので注意が必要です

にほんブログ村 資格ブログ ビジネススキルへ

にほんブログ村

にほんブログ村 IT技術ブログ VBAへ