cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
NigelP
Kudo Kingpin
Kudo Kingpin

Substitute Function Confusion

Hi

 

Looking through the responses for the Substitute function.  It looks as if you have subsititute function in a "On Select" of a Button you must use Set(varfirstSubstitution,Substitute(<original string>,<string to replace>,<replacement string>)) and varfirstSubstitution holds the updated string.

 

If you use the substitute function elsewhere the Substitute(<original string>,<string to replace>,<replacement string>) and <original string > has been updated.

 

Am I correct ?

 

Thanks

 

Nigel

2 ACCEPTED SOLUTIONS

Accepted Solutions
rubin_boer
Super User
Super User

hi @NigelP the original string both cases should not change. if you have a variable "Some string" when you substitute the string whether onselect or in a label the variable will remain, substitute give you a new output. this is my understanding,

 

have la look at this

Set(_String,"This is a string") and assign the variable to a label

 

rubin_boer_0-1613668894655.png

Substitute the string  Set(_SubstitudedString, Substitute(_String,"string","what")) and assing the variable to anopther label

 

the add both variable to a single label, you can see the _String variable remains unchanged.

 

Is you rexpereince different?

 

Hope this helps

 
 

View solution in original post

RandyHayes
Super User
Super User

@NigelP 

Substitute is a Function that returns a substituted string.  It does not alter the original string.

If you use substitute on a non-behavioral property (for example, the Text property of a label), it will use the results of the function.

Example - a Label Text property:  Substitute("My Dog is Brown", "Dog", "Horse") will display My Horse is Brown in the label.

If you use Substitute in a behavioral action (an OnSelect for example), then this implies you are going to do something with it.

Example:   Set(myVar,  Substitute("My Dog is Brown", "Dog", "Horse") )  will give you a variable with  My Horse is Brown in it.

 

Also worth noting, substitute can be chained (as with almost all functions in PowerApps).  So the following in a Label Text property:

    Substitute(Substitute("My Dog is Brown", "Dog", "Horse"), "Brown", "White")

would display My Horse is White

 

I hope this is helpful for you.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

View solution in original post

2 REPLIES 2
rubin_boer
Super User
Super User

hi @NigelP the original string both cases should not change. if you have a variable "Some string" when you substitute the string whether onselect or in a label the variable will remain, substitute give you a new output. this is my understanding,

 

have la look at this

Set(_String,"This is a string") and assign the variable to a label

 

rubin_boer_0-1613668894655.png

Substitute the string  Set(_SubstitudedString, Substitute(_String,"string","what")) and assing the variable to anopther label

 

the add both variable to a single label, you can see the _String variable remains unchanged.

 

Is you rexpereince different?

 

Hope this helps

 
 

View solution in original post

RandyHayes
Super User
Super User

@NigelP 

Substitute is a Function that returns a substituted string.  It does not alter the original string.

If you use substitute on a non-behavioral property (for example, the Text property of a label), it will use the results of the function.

Example - a Label Text property:  Substitute("My Dog is Brown", "Dog", "Horse") will display My Horse is Brown in the label.

If you use Substitute in a behavioral action (an OnSelect for example), then this implies you are going to do something with it.

Example:   Set(myVar,  Substitute("My Dog is Brown", "Dog", "Horse") )  will give you a variable with  My Horse is Brown in it.

 

Also worth noting, substitute can be chained (as with almost all functions in PowerApps).  So the following in a Label Text property:

    Substitute(Substitute("My Dog is Brown", "Dog", "Horse"), "Brown", "White")

would display My Horse is White

 

I hope this is helpful for you.

_____________________________________________________________________________________
Digging it? - Click on the Thumbs Up below. Solved your problem? - Click on Accept as Solution below. Others seeking the same answers will be happy you did.
Check out my PowerApps Videos too! And, follow me on Twitter @RandyHayes

Really want to show your appreciation? Buy Me A Cup Of Coffee!

View solution in original post

Helpful resources

Announcements
UG GA Amplification 768x460.png

Launching new user group features

Learn how to create your own user groups today!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

M365 768x460.jpg

Microsoft 365 Collaboration Conference | December 7–9, 2021

Join us, in-person, December 7–9 in Las Vegas, for the largest gathering of the Microsoft community in the world.

Top Solution Authors
Top Kudoed Authors
Users online (1,940)