I have a name: John Doe Ryan. I use [Replace(),string,'Doe','' ] to remove 'Doe' from the name.
I am then left with John Ryan (with an extra space in between). I then try to search for this name to match a John Ryan (one space), but the Contains condition is coming back as false as it is not an exact 'contains' match, as it picks up on the extra whitespace.
Is there a way to prevent this from happening in the Replace expression? Or is there a way around this when comparing both names in the Condition step?
Thanks
Daragh
Solved! Go to Solution.
Hi, @dwalker97 ... With no disrespect meant to the answers already given, I feel like you could possibly be putting a bandage over a wound that won't close, here. ( also, as an aside, @Paulie78 's regex stuff is brilliantly useful ! )
Solution
Assuming from your information you need to remove ANY name on the blacklist can be easily achieved with a filter:
Blacklist Removal
More Advice and Questions (you can ignore this if you just want an elegant solution)
In order to help you ensure your data is smooth as silk going forward, it would be good to know:
But I have made a few broad assumptions ( like we all are - again, no harshness intended ) on some of thatfrom this reply:
@ Alastair I have stored the names to remove in an array, lets call it 'ArrayNames'. In this array I have 10 names stored which I want to remove from a table of 1000 rows of different full names. I am correctly finding and replacing all the names from full names, but the replace string is what's causing the issue as it is inserting an extra white space.
Im not sure about the split function as the position of the name to remove will be different for each name.
Thanks a lot for your help with this
I would personally say that you should think about the data you're handling perhaps a little more ( not to say that you haven't purely as something to mull over 🙂 ) and consider:
Looking at those will perhaps make you consider different methods to how it's handled, which could make dealing with it in places like Power Automate much easier. I'm not saying that in a "address book in excel" sillyness statement, more just to help with how you process this kind of information. It's all useful in the end, after all. 🙂
Im sure someone smarter than me could tell you how to achieve that easily with the replace function.
As an alternative you could do split string expression (via space key) and reference the first and third values of the split expression to build the name correctly.
Thanks for the reply. The thing is, what I have posted is a very small example of the overall problem I have.
There may be cases where the name has 2, 3, 4 or 5 values within the name. So I cant just reference the first and third values.
Thanks!
How would you know which names in their full name are needed? You have the same issue there with both the replace and split function. In terms of the split expression, if you know the position of the names that you care about you can dynamically select the name by position.
@Alastair I have stored the names to remove in an array, lets call it 'ArrayNames'. In this array I have 10 names stored which I want to remove from a table of 1000 rows of different full names. I am correctly finding and replacing all the names from full names, but the replace string is what's causing the issue as it is inserting an extra white space.
Im not sure about the split function as the position of the name to remove will be different for each name.
Thanks a lot for your help with this
For your array of names to remove have you tried adding a space to the end of them?
Check out this blog post I did, towards the bottom there is an example of exactly what you are trying to do:
https://www.tachytelic.net/2021/04/power-automate-regex/
I suppose that will do! 😋
Thanks for your help
Hi, @dwalker97 ... With no disrespect meant to the answers already given, I feel like you could possibly be putting a bandage over a wound that won't close, here. ( also, as an aside, @Paulie78 's regex stuff is brilliantly useful ! )
Solution
Assuming from your information you need to remove ANY name on the blacklist can be easily achieved with a filter:
Blacklist Removal
More Advice and Questions (you can ignore this if you just want an elegant solution)
In order to help you ensure your data is smooth as silk going forward, it would be good to know:
But I have made a few broad assumptions ( like we all are - again, no harshness intended ) on some of thatfrom this reply:
@ Alastair I have stored the names to remove in an array, lets call it 'ArrayNames'. In this array I have 10 names stored which I want to remove from a table of 1000 rows of different full names. I am correctly finding and replacing all the names from full names, but the replace string is what's causing the issue as it is inserting an extra white space.
Im not sure about the split function as the position of the name to remove will be different for each name.
Thanks a lot for your help with this
I would personally say that you should think about the data you're handling perhaps a little more ( not to say that you haven't purely as something to mull over 🙂 ) and consider:
Looking at those will perhaps make you consider different methods to how it's handled, which could make dealing with it in places like Power Automate much easier. I'm not saying that in a "address book in excel" sillyness statement, more just to help with how you process this kind of information. It's all useful in the end, after all. 🙂
Further to my previous response, you could also simply do:
replace(replace(replace(replace(replace(replace(replace(outputs('Name'), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' ')
This will replace all instances from 2 whites spaces up to seven white spaces, with a single white space in one expression.
If you're going to stick with purely addressing the text, for sure, @Paulie78 ... but for the sake of minimalism, wouldn't this be more efficient?
trim(join(union(array(' '), split(outputs('Name'), ' ')), ' '))
@Paulie78 wrote:Further to my previous response, you could also simply do:
replace(replace(replace(replace(replace(replace(replace(outputs('Name'), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' '), ' ', ' ')
This will replace all instances from 2 whites spaces up to seven white spaces, with a single white space in one expression.
I've tried this suggested formula to remove unwanted "whitespace" from within the text, which has had carriage return(newline) removed plus trimmed for whitespace both ends. It has no apparent effect, as I still had extended gaps between some text strings.
Perhaps those are caused by something else, like 'paragraph ghosts' or similar? 🤔
User | Count |
---|---|
88 | |
37 | |
26 | |
13 | |
13 |
User | Count |
---|---|
127 | |
54 | |
37 | |
24 | |
21 |