cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
rnunley
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.

 

Thanks!

19 REPLIES 19
efialttes
Community Champion
Community Champion

Hi!
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:
first(item())
Finally, you can add a compose action block out of the 'Apply to eac' and assign as its input the following expression:
join(variable('outputName'),'')

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
first(item())
...and finally get the expected result by means of a Compose action block, assigning as its inpit the following expression:
join(body('Select'),'')

Hope this helps

Did I make your day? If so, mark my response as 'Solution' !!!

También escribo sobre Power Automate en este Blog y en Twitter

fchopo
Super User
Super User

Hi @rnunley 

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

forms.png

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:
substring(substring(body('Get_response_details')?['r9723f014ffc146debd7eeca108b84ad0'],0,variables('BlankPosition')),0,1)
3) Get the LastName length:
sub(sub(length(body('Get_response_details')?['r9723f014ffc146debd7eeca108b84ad0']),variables('BlankPosition')),1)
4) Get the last name Initial:
substring(substring(body('Get_response_details')?['r9723f014ffc146debd7eeca108b84ad0'],add(variables('BlankPosition'),1),variables('LastNameLength')),0,1)
 
Hope it helps!
Ferran
 
Did I answer your question? Please consider to mark my post as a solution to help others.
Proud to be a Flownaut!
rnunley
Frequent Visitor

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

Hi,

 

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

 

Regards,

 

Alex

 

-------

 

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.

I tried your solution but I'm having issues. At the Apply to each I'm getting an error - The execution of template action 'Apply_to_each' failed: the result of the evaluation of 'foreach' expression 'split(variables('@{variables('inputName')}'),' '))' is of type 'String'. The result must be a valid array.

wlyttle_0-1643832701598.png

 

 

I followed your steps but I still cannot get it to work.  Says I need an array not string. 

KvB1
Solution Sage
Solution Sage

You can use this much more elegantly:

 

concat(substring(split(variables('inputName'),' ')[0],0,1),substring(split(variables('inputName'),' ')[1],0,1))
KvB1
Solution Sage
Solution Sage

Also this assumes that the name only consists of 2 words, sepparated by a single space, so its important to adhere to that format, or else youd have to make things dynamic

Thank you for taking the time to post. I'm not sure on how to use your solution. If you could be so kind what are the steps needed to make this work? I want to use the Displayname from the user.

KvB1
Solution Sage
Solution Sage

Oh right, so this is a person/group field in SharePoint?

 

It would be good to know where the data is coming from that you want to use, and what kind of format it has

Yes, Its a sharepoint list that is a lookup for people only and displays the Name field.

KvB1
Solution Sage
Solution Sage

Okay, so that will return to you an object. From this object, you then have to select the name. If you show the output of the action, you can find what you have to write in the expression to grab the name

Sorry , I guess i need some hand holding here. Still new to MSFlow. In my flow I initialize the variable inputName, Type Object with no value. If I set the variable it give an error needs to be a string not object. I'm not doing it right...Can you tell me what I need to do in laymans terms. 🙂 

KvB1
Solution Sage
Solution Sage

Sure, basically, there are different kinds of variables, such as string, integer, boolean, array, object, etc

 

PowerAutomate handles them differently, and some actions you can only do with some, not with others. For example, if you would have a string that holds '1', you can not use it to do math, because you would need it to be an integer.

 

Then there is object, which is basically a bunch of strings (lines of text) that belong together. 

 

You are initializing a variable, and you are telling powerautomate that it will be an object. Then you are trying to set the variable, but you are using a string. So the flow is expecting that the variable will be set with an object, because you told it that this variable is an object. So when you then try to set it using a string, it will give an error.

 

In sharepoint, the people/group column is an object. In it is stuff like the mail address, and display name. IF this object is present and passed down your flow from some previous action, and you only want to get the display name, you have to tell the flow to do this. Just because sharepoint is showing you this displayname, does not mean that this is the information your flow is receiving.

 

In general, it is good to know what kind of data comes out of actions, so you can decide what you want to grab, how you want to grab it, or if you have to change the output of the action.

 

A good habit to develop is to check the output of an action in the run history

Great info. Thank you for that. I think you went beyond what I was asking but great info and helping me learn. I was hoping you could tell me what I need to do to convert the displayName to intitals - actual steps. I spent a few hours hacking away with no good results.

KvB1
Solution Sage
Solution Sage

Alright, it is still not clear to me what the type is of the data that you will use to convert to initials.

 

If it comes from the form, its most likely a string.

 

If it comes from a sharepoint column thats defined as a person/group its an object.

 

Could you maybe show what you have so far?

It is from a SharePoint list. Person or Group - People Only - All Users. In MS Flow i want to take that First Name/Last and convert to a variable that contains only their initails. I will use that in a Send Email. I need to Flow steps to do this. Maybe soon I'll understand this more. For now I need to bug people like you to help me. 🙂

 

KvB1
Solution Sage
Solution Sage

Yeah, so the info you get is an object, and holds other information such as the users email adress, etc. 

 

The info you need is 'DisplayName', so to get that, you add ?['DisplayName'] after the name of the column, in an expression.

 

For example, if I would run a get item action, and would want the display name of the author, i would use:

outputs('Get_item')?['body/value']?['Author']?['DisplayName']
 
You can then use that inside the expression posted earlier

concat(substring(split(variables('inputName'),' ')[0],0,1),substring(split(variables('inputName'),' ')[1],0,1))

 

Can you explain what the 0 and the 1 in bold mean in your function above?

I have tried the function but it doesn't work. 

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!    This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Community MembersNumber SolutionsSuper UsersNumber Solutions Deenuji 9 @NathanAlvares24  17 @Anil_g  7 @ManishSolanki  13 @eetuRobo  5 @David_MA  10 @VishnuReddy1997  5 @SpongYe  9JhonatanOB19932 (tie) @Nived_Nambiar  8 @maltie  2 (tie)   @PA-Noob  2 (tie)   @LukeMcG  2 (tie)   @tgut03  2 (tie)       Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 2: Community MembersSolutionsSuper UsersSolutionsPower Automate  @Deenuji  12@ManishSolanki 19 @Anil_g  10 @NathanAlvares24  17 @VishnuReddy1997  6 @Expiscornovus  10 @Tjan  5 @Nived_Nambiar  10 @eetuRobo  3 @SudeepGhatakNZ 8     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 3:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji32ManishSolanki55VishnuReddy199724NathanAlvares2444Anil_g22SudeepGhatakNZ40eetuRobo18Nived_Nambiar28Tjan8David_MA22   Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Week 4:Community MembersSolutionsSuper UsersSolutionsPower Automate Deenuji11FLMike31Sayan11ManishSolanki16VishnuReddy199710creativeopinion14Akshansh-Sharma3SudeepGhatakNZ7claudiovc2CFernandes5 misc2Nived_Nambiar5 Usernametwice232rzaneti5 eetuRobo2   Anil_g2   SharonS2  

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages

Users online (1,437)