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
User Group Leader Meeting January 768x460.png

Calling all User Group Leaders!

Don't miss the User Group Leader meetings on January, 24th & 25th, 2022.

Power Apps Community Call Jan. 2022 768x460.png

Power Apps Community Call

Please join us on Wednesday, January 19th, at 8a PDT. Come and learn from our amazing speakers!

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Top Solution Authors
Top Kudoed Authors
Users online (2,259)