Power Query エディタから「値の置換」を用いると列から特定の値を置換することができますが、指定できるのは文字列のみで、条件列を追加するときのように他の列の値を指定することができません。
そこでM式のクエリを直接編集して、置換後の値に列の値を指定する方法や、置換するための条件に数式を用いる方法について、下記テーブルを元データにして解説します。
「値の置換」を使って ReplaceValue クエリを追加する
Col3 から 'empty' を検索して、 Col1 の値で置換させようとすると、「置換後」のテキストボックスに列名を指定したとしても、文字列として解釈されるため意図した結果になりません。
クエリ
= Table.ReplaceValue(
変更された型,
"empty",
"[Col1]",
Replacer.ReplaceText,
{"Col3"}
)
置換する値に列名を指定する方法
ReplaceValue の newValue 引数を each キーワードを使って書き換えると Col1 の値で置換する事ができます。
クエリ
= Table.ReplaceValue(
変更された型,
"empty",
each [Col1],
Replacer.ReplaceText,
{"Col3"}
)
検索する値をif式で指定する方法
oldValue 引数に元の列名を使用すればReplaceValueの検索値に必ずヒットするようになるため、newValue 側でif条件式を詳しく記入することもできます。
クエリ
= Table.ReplaceValue(
変更された型,
each [Col3],
each if Number.Mod([Col2], 2)=0
then [Col3]
else [Col1] ,
Replacer.ReplaceText,
{"Col3"}
)