Forum Discussion
Anonymous
4 years agoNot applicable
Function uses parameter for a column
I have text in one column, which I want to replace in another column. I need to do this replacement for multiple columns so I created a custom function fxReplaceValue. Because I want to repeat this f...
- 4 years ago
let Source = (qrySource,ColumnToCheck as text,Condition as text,ColumnToBeReplaced as text) => let Source = qrySource, replaceSummer = Table.ReplaceValue(Source, each Record.Field(_,ColumnToBeReplaced), each if Text.Contains(Record.Field(_,ColumnToCheck), Condition, Comparer.OrdinalIgnoreCase) then Record.Field(_,ColumnToCheck) else Record.Field(_,ColumnToBeReplaced), Replacer.ReplaceValue,{ColumnToBeRelaced}), replaceValSummer = Table.ReplaceValue(replaceSummer, each Record.Field(_,ColumnToCheck), each if Text.Contains(Record.Field(_,ColumnToBeReplaced), Condition, Comparer.OrdinalIgnoreCase) then "" else Record.Field(_,ColumnToCheck), Replacer.ReplaceValue,{ColumnToCheck}) in replaceValSummer in Sourceregardless of efficiency, just amend your code.
jbwtp
4 years agoMemorable Member
Hi Anonymous,
Intersting, it should not really as you pass the parameter as text and intend to use it as column, unless relevant rows in the [Summer] column = "Summer". A correct way to address (if necessary) a column from text would be something like Record.FieldOrDefault(_, colReplacement), where you refer colReplacement as a column.
Cheers,
John
Anonymous
4 years agoNot applicable
Hi jbwtp , yes this formula worked, but did not return the desired results. I will try Daniels solution instead.