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"?


  • @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.



  • @zdlee: try this formula given your example:


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

  • @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)?

  • @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.