Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
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.
Solved! Go to Solution.
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
)
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
Proud to be a 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.
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
Proud to be a Super User! | |