Forum Discussion
Power Query - Replace multiple substrings in one list column
- 4 years ago
One way:
- Create a two column replacement table
- I named the columns "LookFor" and "Replace"
Then you can use code like below in your 'Main Query'
//create a Replacement List from the Replacement Table #"Replacement List"=List.Zip({Replacements[LookFor],Replacements[Replace]}), //Do the actual replacements using the TransformColumns method #"Replace Multiple" = Table.TransformColumns(#"Previous Step", {"Column1", (s)=> Text.Combine( List.ReplaceMatchingItems( List.Transform(Text.Split(s,","), Text.Trim), #"Replacement List"), ",") }) in #"Replace Multiple" - Create a two column replacement table
Need some clarity on this requirement. If it is a matter of replace A with Aa and so on, it is very easy. But I believe this example is not right as in below code, you are replacing TRACY with TRACI and so on.
I would like to know that do you have a mapping table / list where I know TRACY has to be replaced with TRACI OR Y with I.....If yes, can you post this mapping table here?
- E_K_4 years agoHelper III
Te TRACY/I solution is from the link I posted - different dataset, slightly different requirements than mine, I tried sustituting my values in and playing around a little with the syntax but it did not work. https://community.powerbi.com/t5/Desktop/Power-Query-Replace-multiple-substrings-in-one-column/m-p/589062
I don't have a distinct list of the values within my dataset and don't want to break out into another one as a dimension table unless I absolutely have to.
Not sure what a mapping table is?
- Vijay_A_Verma4 years agoMost Valuable Professional
I want to see one actual cell value (if this is confidential, just change few alphabets) and the result against that actual cell value.
- E_K_4 years agoHelper III
Oh I see! An M query that can replace these cell inputs with the key provided below,ideally in as few steps as possible. There are about 150 different values to replace
Cell 1 - ALE, AEX, DDI, ELV, PRT, ZAI, ZZI
Cell 2 -AEX, PRT, ZZI
Replace to Allegro, Aeronautix, Didactic, Ealing advantage, Preet, Zone arti, Zanzibar
- ronrsnfld4 years agoSuper User
I'm guessing your actual desired substitutions are not as simplistic as your example, which shows single character Upper Case => Upper & Lower case. How is the computer to "know" what you are substituting?
You'll need to refer to some kind of list or table or database.
- E_K_4 years agoHelper III
How would I map that in the data model? Split out into a distinct list, make the substitutions, and somehow dummy that back into the dataset? Trying to imagine how to do this