Brian Dunning's FileMaker Custom Functions

FormatThousands ( number )

Adds a comma thousands delimiter to a text or number

  Average rating: 4.2 (23 votes) Log in to vote

Gary Amstutz   Gary Amstutz
Sweetwater
http://sweetwater.com

Share on Facebook Share on Twitter

  Sample input:
FormatThousands(-1234567.23)
  Sample output:
"-1,234,567.23"

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

This function formats a number by adding comma thousands separator when necessary.

You can pass it a text string (such as "Totals: 15345.34") and it will extract the numeric portion and return that as formatted text (i.e. "15,345.34")

This works with negative and positive numbers, fixed and floating point decimals, or integers.

The comma is hard-coded, but you can easily change the "," in the function to anything else that your country uses for thousands separator (eliminating having to pass the "," every time you use it!)

This function intentionally keeps the decimal points "floating". Sometimes you need that. But if not, and you need a fixed length decimal result, consider using Rob Poelking's (Excelisys) FormatThousands (Number; Precision; Separator) found at http://www.briandunning.com/cf/727. However, if you use his function and if you need for it to work with negative numbers, you'll need to change one line of code in that function. Somewhere around line 5 you'll find this code: neg = If ( Abs ( number ) + number < 0 ; "-" ; "" ) ; Change it to neg = If ( GetAsNumber ( number ) < 0; "-"; "" ) ; and that will fix the bug in his function.

But if you just want a fast and efficient thousands separator formatter and you don't care about changing the decimal precision, then this function should work for you.

This function is not dependent on any other function.

- Gary Amstutz
Sweetwater, Inc.

 

Comments

unix   unix, Japan
Feb 9, 2016
There is a built in function
NumToJText ( number ; 1 ; 0 )
will do the same.
 
Gary Amstutz   Gary Amstutz, Sweetwater
Feb 9, 2016
Unix:

Good grief! You're right. I had seen NumToJText before, read its documentation, but had never used NumToJText, because the examples only showed Japanese separators, and I assumed it was a Japanese-only function.

Brian Dunning team -- you can remove this if you want, or leave it for people like me that were searching for this type of functionality not realizing you could do this with NumToJText( number; 1; 0). Thanks for the 'heads up', 'unix'!
 

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.