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

@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
Certified Master Anaplanner

@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

@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
Certified Master Anaplanner

@zdlee: try this formula given your example:

 

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