Is it possible to abbreviate currency field values in a table?

I've been asked to adjust the formatting of two currency fields in a table card to show by thousands, for example $17.2M rather than $17,200,000. Is this possible?

Best Answer

Answers

  • GrantSmith
    GrantSmith Indiana 🔴

    Hi @cthtcc

    There doesn't appear to be an option built into the formatting of the text to allow for abbreviation so you'd need to do it yourself using a beast mode. Here's one that I typically use to abbreviate numbers in the billions.

    CONCAT(CASE WHEN LENGTH(ROUND(SUM(`Number Orders`), 0)) >= 10 THEN
    	CONCAT(
    		ROUND(SUM(`Number Orders`) / 1000000000, 2), 'B'
        )
    WHEN LENGTH(ROUND(SUM(`Number Orders`), 0)) >= 7 THEN
    	CONCAT(
    		ROUND(SUM(`Number Orders`) / 1000000, 2), 'M'
        )
    WHEN LENGTH(ROUND(SUM(`Number Orders`), 0)) >= 4 THEN
    	CONCAT(
    		ROUND(SUM(`Number Orders`) / 1000, 2), 'K'
        )
    WHEN LENGTH(ROUND(SUM(`Number Orders`), 0)) <= 3 THEN
          ROUND(SUM(`Number Orders`), 0)
    WHEN SUM(`Number Orders`) IS NULL THEN 0
    ELSE ''
    END
    )
    

    Just replace `Number Orders` with your field name. You might need to change the last ROUND function to 2 if you want 2 decimal places. My example only used whole numbers so I didn't need decimal places if the number was under 1,000.

  • jaeW_at_Onyx
    jaeW_at_Onyx Budapest / Portland, OR 🟤

    OOF.

    Brillinat solution @GrantSmith

    I would push back on the customer. if you apply formatting to the currency it will convert type to text. By converting it to text, you can no longer take advantage of Total and Subtotal columns.