Go Premium for a chance to win a PS4. Enter to Win

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 700
  • Last Modified:

Truncate formula

Hi Experts,

I need to show only the NUMERIAL value of my string. For instance, I need to show only the NUMERICAL values from the following customer name string:

Carpet Court Kogaraha SN25251
Carpet Court Dubbo SN25981
Carpet Court Design SN 22598

Intened result:

NOTE: The numerical value in the customer name string has maximum of 5 characters. In some occassion, there is a SPACE between SN and the Numerical value (e.g., SN 22560). I wan to capture only the NUMERICAL value.

I'm using the below formula but it is giving me a DECIMAL place before the result.
Val(strreverse(Cstr(val(StrReverse ({Sheet1_.Sold-to party} )),5,'')))


How do I remove the DECIMAL infront as shown above.

Heaps of thanks
  • 3
  • 2
  • 2
  • +1
2 Solutions

Hi There
You can remove all '.''s in your field like this

UPDATE Yourtable SET YourField = replace(YourField, '.','');

Priya PerumpilavilCommented:
try this
Right ({Sheet1_.Sold-to party}, 5)
Aw, sorry mine was if you wanted to update the data, in your database

EG in SQL so you didn't have them in the field at all.. may still help you.. Not sure.

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

mcse2007Author Commented:
Just cannot remember in the past how it worked for me...i must have formated the result using the FORMAT FIELD.

i've already tried that but the problem with that is as mentioned above there are customers name where their SN has a gap then the NUMERICAL VALUE value (e.g., SN 2256). I don't want any space just pure Numerical value.
mcse2007Author Commented:
Ok, i've used my old formula and it worked fine..here it is. sorry for posted this.

stringvar str;
str :=trim(Replace({table.field},"SN ", "SN"));
str := mid(str, instrrev(str," ")+3);
Priya PerumpilavilCommented:
so y dont u put val infront of the formula as
val(Right ({Sheet1_.Sold-to party}, 5))
same as my update, SET in SQL, but in crystals ;)

glad you got it !
FWIW, the problem with the formula in your original post was the format options you used for CStr.  If you break that formula down and remove the Val and StrReverse that were around the CStr, you'll see that you get results like "15252.00000".  That's because you told CStr to use 5 decimal places and no thousands separator.  So "25251" is reversed to "15252", which Val converts to 15252 (a number), which CStr converts to "15252.00000" (a string).  When you reverse that and convert it to a number, you get 0.25251, which you were showing as .25251.

 If you use the "#" format with CStr, as shown below, that formula works.  The "#" format says to not show any thousands separator or decimal places, so the number 15252 is converted to the string "15252" (instead of "15252.00000"), which reverses to "25251", which converts to the number 25251.

Val(strreverse(Cstr(val(StrReverse ("Carpet Court Kogaraha SN25251")),"#")))

 I don't need any points for this.  I just wanted to let you know why the first formula didn't work.


Featured Post

[Webinar] Cloud and Mobile-First Strategy

Maybe you’ve fully adopted the cloud since the beginning. Or maybe you started with on-prem resources but are pursuing a “cloud and mobile first” strategy. Getting to that end state has its challenges. Discover how to build out a 100% cloud and mobile IT strategy in this webinar.

  • 3
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now