How do I get the characters before a specific character?

zdlee
New Contributor

How do I get the characters before a specific character?

Let's say I have column username and a username is "JonSmith-81". What would be the formula to return just "JonSmith"?

4 REPLIES 4
rob_marshall
Moderator

Re: How do I get the characters before a specific character?

@zdlee 

 

Using the Find function would work here...Find("-",line item) which will give you a number.  Then, in another line item, you can use the Left() function, Left(line item, results of the find - 1).  You have to subtract the one because the Find is telling you where the - is.

 

Rob

jedwards
Occasional Contributor

Re: How do I get the characters before a specific character?

@rob_marshall looks like you beat me to the answer!

 

Correct me if I'm wrong, but text parsing is a pretty expensive operation and should be avoided or at least only performed in a system module (calc once and reference)?

rob_marshall
Moderator

Re: How do I get the characters before a specific character?

@jedwards 

 

Yes, beat you by that much.  And yes, you are correct, text parsing is fairly expensive, but sometimes it has to be done.  So, when it is required, it is best to split it over multiple line items instead of putting all of the parsings in one line item.  And lastly, yes, it is best to be done in SYS module.

 

Rob

jedwards
Occasional Contributor

Re: How do I get the characters before a specific character?

@zdlee: try this formula given your example:

 

LEFT(username, FIND("-", username) - 1)