Showing results for 
Search instead for 
Did you mean: 
Frequent Visitor

Change Name to Initials

I am using MS Forms to collect data and Power Automate to send that data to an Excel Workbook.  In the form I am collecting names as one of the fields.  I would like the flow to convert their name to their initials and write the initials to Excel.  There are only about six different names being input into the Form.  Example: John Smith = JS, Amy Johnson = AJ.  I tried using an IF expression but I cannot get that to work.



Super User III
Super User III

Let's assume you have "John Smith" stored in a variable called 'inputName'
If so you can convert by means of the following sequence:
Add an 'Initialize variable' name 'outputName', type string no value.
Add an 'Apply toEach' action block, assign as its input the following expression:
split(variables('inputName'),' '))
Inside the appy to each add 'Append to string' action block, name 'outputName' assign as its value the following expression:
Finally, you can add a compose action block out of the 'Apply to eac' and assign as its input the following expression:

There are other possible approaches, so instead an Apply to each you can use a Select action block and assign the following expression as its input
split(variables('inputName'),' '))
then assign the following expression as the mapping formula
...and finally get the expected result by means of a Compose action block, assigning as its inpit the following expression:

Hope this helps

Each time you click on any of our inspiring answers 'Thumb up' icon... ewok scapes from the stormtroopers.

Be grateful, Thumbs up! Save the Galaxy for free!

Escribo sobre Power Automate en:

Proud to be a Flownaut!

Super User II
Super User II

Hi @rnunley 

I have used the following flow with some expressions to solve what you want to achieve:


In this case, the field  body('Get_response_details')?['r9723f014ffc146debd7eeca108b84ad0'] is the Forms field with the Name.

Here are the expressions used on each step:

1) Get the blank position between the first name and the last name: 

indexOf(body('Get_response_details')?['r9723f014ffc146debd7eeca108b84ad0'],' ')
2) Get the First Initial:
3) Get the LastName length:
4) Get the last name Initial:
Hope it helps!
Did I answer your question? Please consider to mark my post as a solution to help others.
Proud to be a Flownaut!
Frequent Visitor

I got it working.  I used the "Switch" step in Power Automate along with a variable.



That's great that you got it working! Remember to set as resolved for however helped you.








Community Support Team _ Alex Rezac
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

MPA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group


Are Your Ready?

Test your skills now with the Cloud Skill Challenge.

Top Solution Authors
Users online (40,709)