Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
sa34techer
Helper II
Helper II

Adjust Dynamic format of a Measure

I am using dynamic format with a SWITCH function to display units a measure.  Please assist me with adjusting my SWITCH function(below), to numbers that end in K should have the decimal after the dollar sign and no decimal point.

  • Change $915.1K to $.915K (Example)

 

sa34techer_1-1734633128991.png

 

 

var salesMeasure = [.Total Revenue]
return

SWITCH(TRUE(),
AND(SalesMeasure>-1000000000,SalesMeasure<=-1000000),"$#,##0,,.0M",
AND(SalesMeasure>-1000000,SalesMeasure<=-1000),"$#,##0,.0K",
salesMeasure>1000 && salesMeasure<100000,"$#,.0K",
salesMeasure<1000000, "$#,.0K",
salesMeasure<1000000000, "$#,,.0M",
salesMeasure>=1000000000, "$#,,,.0B")
sa34techer_0-1734633084242.png

 

2 ACCEPTED SOLUTIONS
Bibiano_Geraldo
Super User
Super User

Hi @sa34techer ,

Here's updated DAX, please let me know if satisfies your needs:

var salesMeasure = [Total Revenue]
return
SWITCH(TRUE(),
    AND(salesMeasure > -1000000000, salesMeasure <= -1000000), "$#.0,,M",  -- For millions
    AND(salesMeasure > -1000000, salesMeasure <= -1000), "$#.0,.K",  -- For thousands (negative)
    salesMeasure > 1000 && salesMeasure < 1000000, "$#.0,.K",  -- For thousands (positive)
    salesMeasure < 1000000, "$#.0,.K",  -- For thousands (positive)
    salesMeasure < 1000000000, "$#.0,,M",  -- For millions
    salesMeasure >= 1000000000, "$#.0,,,B"  -- For billions
)

View solution in original post

Maybe something like this would work for you...

formattedMeasure = 
var _salesMeasure = 
SUM('Table'[Values])
var _result =
SWITCH(
    TRUE(),
    ABS(_salesMeasure) > 1000000000, "$"&FORMAT(_salesMeasure, "#,,,.0B"),
    ABS(_salesMeasure) > 1000000, "$"&FORMAT(_salesMeasure, "#,,.0M"),
    ABS(_salesMeasure) > 1000, "$."&FORMAT(_salesMeasure,"#,K"),
    ABS(_salesMeasure) > 0, "$"&FORMAT(_salesMeasure,"#")
)
RETURN
_result

jgeddes_0-1734637182504.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





View solution in original post

3 REPLIES 3
Bibiano_Geraldo
Super User
Super User

Hi @sa34techer ,

Here's updated DAX, please let me know if satisfies your needs:

var salesMeasure = [Total Revenue]
return
SWITCH(TRUE(),
    AND(salesMeasure > -1000000000, salesMeasure <= -1000000), "$#.0,,M",  -- For millions
    AND(salesMeasure > -1000000, salesMeasure <= -1000), "$#.0,.K",  -- For thousands (negative)
    salesMeasure > 1000 && salesMeasure < 1000000, "$#.0,.K",  -- For thousands (positive)
    salesMeasure < 1000000, "$#.0,.K",  -- For thousands (positive)
    salesMeasure < 1000000000, "$#.0,,M",  -- For millions
    salesMeasure >= 1000000000, "$#.0,,,B"  -- For billions
)

You suggestion did not work.   Results below.

 

sa34techer_0-1734634708911.png

 

Maybe something like this would work for you...

formattedMeasure = 
var _salesMeasure = 
SUM('Table'[Values])
var _result =
SWITCH(
    TRUE(),
    ABS(_salesMeasure) > 1000000000, "$"&FORMAT(_salesMeasure, "#,,,.0B"),
    ABS(_salesMeasure) > 1000000, "$"&FORMAT(_salesMeasure, "#,,.0M"),
    ABS(_salesMeasure) > 1000, "$."&FORMAT(_salesMeasure,"#,K"),
    ABS(_salesMeasure) > 0, "$"&FORMAT(_salesMeasure,"#")
)
RETURN
_result

jgeddes_0-1734637182504.png

 





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

Find out what's new and trending in the Fabric community.

Top Kudoed Authors