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.
Anonymous
4 years agoNot applicable
I think I solved my own question by just changing the entries in the formula.
= fxReplaceValue(_NotesMech, "Summer")- jbwtp4 years ago
Memorable 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
- Anonymous4 years agoNot applicable
Hi jbwtp , yes this formula worked, but did not return the desired results. I will try Daniels solution instead.