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

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
Genrique
Frequent Visitor

Handling unit scale in charts

Power BI is a wonderful program — what you can do once you dive a bit deeper into it is incredible. Even so, there are things I don’t understand how, after so many years, still haven’t been changed.

In my opinion, the automatic use of units in charts is one of them. As you can see, it automatically uses billions instead of millions, resulting in labels that lack useful information. I know the quick fix is to set the units manually to millions, but when the chart is filtered, I would run into the problem of using millions when units would actually be more appropriate.

In some cases, I’ve solved this using DAX with custom formats, and I’ll do the same for the total labels. The problem lies in the error labels, where I’m not allowed to add a measure that specifies the unit format through DAX.

 

hope this post helps bring visibility to this issue and reaches the Power BI development team. Thank you!

 

Genrique_0-1744706416963.png

 

1 ACCEPTED SOLUTION
v-karpurapud
Community Support
Community Support

Hi @Genrique 


Thank you for reaching out to the Microsoft Fabric Community Forum.
 

Thank you @HarishKM and @pankajnamekar25 for your quick response.

We understand your concern regarding Power BI’s automatic unit scaling in visuals. While it can be useful, it may lead to confusing outputs, especially with dynamic datasets or filters.

 

Regarding your specific point about error bar labels:

 

Currently, Power BI does not support dynamic unit adjustment for error bar labels through a measure. Unlike data labels, where a DAX measure using FORMAT() can create custom units, this flexibility is not available for error bar annotations. The only workaround is to manually set the units in the axis or data label formatting settings. However, this does not dynamically respond to changing filters or data volumes.

 

As this is a product limitation, we highly encourage you to submit your feedback to the Power BI Ideas forumFabric Ideas - Microsoft Fabric Community. The Ideas platform significantly influences future feature development, and more feedback increases the likelihood of prioritizing this functionality in future updates.


 

If my response has resolved your query, please mark it as the Accepted Solution to assist others. Additionally, a 'Kudos' would be appreciated if you found my response helpful.

 

Thank You!

View solution in original post

5 REPLIES 5
v-karpurapud
Community Support
Community Support

Hi @Genrique 


Thank you for reaching out to the Microsoft Fabric Community Forum.
 

Thank you @HarishKM and @pankajnamekar25 for your quick response.

We understand your concern regarding Power BI’s automatic unit scaling in visuals. While it can be useful, it may lead to confusing outputs, especially with dynamic datasets or filters.

 

Regarding your specific point about error bar labels:

 

Currently, Power BI does not support dynamic unit adjustment for error bar labels through a measure. Unlike data labels, where a DAX measure using FORMAT() can create custom units, this flexibility is not available for error bar annotations. The only workaround is to manually set the units in the axis or data label formatting settings. However, this does not dynamically respond to changing filters or data volumes.

 

As this is a product limitation, we highly encourage you to submit your feedback to the Power BI Ideas forumFabric Ideas - Microsoft Fabric Community. The Ideas platform significantly influences future feature development, and more feedback increases the likelihood of prioritizing this functionality in future updates.


 

If my response has resolved your query, please mark it as the Accepted Solution to assist others. Additionally, a 'Kudos' would be appreciated if you found my response helpful.

 

Thank You!

HarishKM
Solution Sage
Solution Sage

@Genrique Hey,
you can write dax to automatically format unit string.

I will suggest Kindly refer this blog post - Power BI - Change display unit based on values in table - Power BI Docs

 

Thanks
Harish M
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly and give Kudos if helped you resolve your query

Thanks for the help, I probably didn’t explain myself well. I know how to do it with DAX and that’s how I solved the bar labels. The problem is with the error labels, which don’t allow the use of the FORMAT function in the measure, since the label doesn’t support using a specific measure.

  1. It would be great if Power BI allowed using a specific measure for the error bar labels.

  2. In general, it would be great if Power BI handled unit formatting better automatically, so we wouldn’t have to create specific measures.

pankajnamekar25
Impactful Individual
Impactful Individual

Hello @Genrique 

 

By default it is not possible , but you can crate a dynamic formatting measure and add that into as data label

 

Formatted Sales =

VAR SalesValue = SUM(Sales[Amount])

RETURN

SWITCH(

    TRUE(),

    SalesValue >= 1000000000, FORMAT(SalesValue / 1000000000, "0.00") & " B",

    SalesValue >= 1000000, FORMAT(SalesValue / 1000000, "0.00") & " M",

    SalesValue >= 1000, FORMAT(SalesValue / 1000, "0.00") & " K",

    FORMAT(SalesValue, "0.00")

)

Thanks,
 Pankaj Namekar | LinkedIn

If this solution helps, please accept it and give a kudos (Like), it would be greatly appreciated.

Thanks for the help, I probably didn’t explain myself well. I know how to do it with DAX and that’s how I solved the bar labels. The problem is with the error labels, which don’t allow the use of the FORMAT function in the measure, since the label doesn’t support using a specific measure.

  1. It would be great if Power BI allowed using a specific measure for the error bar labels.

  2. In general, it would be great if Power BI handled unit formatting better automatically, so we wouldn’t have to create specific measures.

Helpful resources

Announcements
March PBI video - carousel

Power BI Monthly Update - March 2025

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

March2025 Carousel

Fabric Community Update - March 2025

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

"); $(".slidesjs-pagination" ).prependTo(".pagination_sec"); $(".slidesjs-pagination" ).append("
"); $(".slidesjs-play.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-stop.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-pagination" ).append(""); $(".slidesjs-pagination" ).append(""); } catch(e){ } /* End: This code is added by iTalent as part of iTrack COMPL-455 */ $(".slidesjs-previous.slidesjs-navigation").attr('tabindex', '0'); $(".slidesjs-next.slidesjs-navigation").attr('tabindex', '0'); /* start: This code is added by iTalent as part of iTrack 1859082 */ $('.slidesjs-play.slidesjs-navigation').attr('id','playtitle'); $('.slidesjs-stop.slidesjs-navigation').attr('id','stoptitle'); $('.slidesjs-play.slidesjs-navigation').attr('role','tab'); $('.slidesjs-stop.slidesjs-navigation').attr('role','tab'); $('.slidesjs-play.slidesjs-navigation').attr('aria-describedby','tip1'); $('.slidesjs-stop.slidesjs-navigation').attr('aria-describedby','tip2'); /* End: This code is added by iTalent as part of iTrack 1859082 */ }); $(document).ready(function() { if($("#slides .item").length < 2 ) { /* Fixing Single Slide click issue (commented following code)*/ // $(".item").css("left","0px"); $(".item.slidesjs-slide").attr('style', 'left:0px !important'); $(".slidesjs-stop.slidesjs-navigation").trigger('click'); $(".slidesjs-previous").css("display", "none"); $(".slidesjs-next").css("display", "none"); } var items_length = $(".item.slidesjs-slide").length; $(".slidesjs-pagination-item > button").attr("aria-setsize",items_length); $(".slidesjs-next, .slidesjs-pagination-item button").attr("tabindex","-1"); $(".slidesjs-pagination-item button").attr("role", "tab"); $(".slidesjs-previous").attr("tabindex","-1"); $(".slidesjs-next").attr("aria-hidden","true"); $(".slidesjs-previous").attr("aria-hidden","true"); $(".slidesjs-next").attr("aria-label","Next"); $(".slidesjs-previous").attr("aria-label","Previous"); //$(".slidesjs-stop.slidesjs-navigation").attr("role","button"); //$(".slidesjs-play.slidesjs-navigation").attr("role","button"); $(".slidesjs-pagination").attr("role","tablist").attr("aria-busy","true"); $("li.slidesjs-pagination-item").attr("role","list"); $(".item.slidesjs-slide").attr("tabindex","-1"); $(".item.slidesjs-slide").attr("aria-label","item"); /*$(".slidesjs-stop.slidesjs-navigation").on('click', function() { var itemNumber = parseInt($('.slidesjs-pagination-item > a.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); });*/ $(".slidesjs-stop.slidesjs-navigation, .slidesjs-pagination-item > button").on('click keydown', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); var itemNumber = parseInt($('.slidesjs-pagination-item > button.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); }); $(".slidesjs-play.slidesjs-navigation").on('click', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); }); $(".slidesjs-pagination-item button").keyup(function(e){ var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".slidesjs-stop.slidesjs-navigation").trigger('click').blur(); $("button.active").focus(); } }); $(".slidesjs-play").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-stop").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-play")) { $(".slidesjs-stop").focus(); } } }); $(".slidesjs-stop").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-play").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-stop")) { $(".slidesjs-play").focus(); } } }); $(".slidesjs-pagination-item").keydown(function(e){ switch (e.which){ case 37: //left arrow key $(".slidesjs-previous.slidesjs-navigation").trigger('click'); e.preventDefault(); break; case 39: //right arrow key $(".slidesjs-next.slidesjs-navigation").trigger('click'); e.preventDefault(); break; default: return; } $(".slidesjs-pagination-item button.active").focus(); }); }); // Start This code is added by iTalent as part of iTrack 1859082 $(document).ready(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); $("#tip2").attr("aria-hidden","true").addClass("hidden"); $(".slidesjs-stop.slidesjs-navigation, .slidesjs-play.slidesjs-navigation").attr('title', ''); $("a#playtitle").focus(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").mouseover(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").blur(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#playtitle").mouseleave(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#play").keydown(function(ev){ if (ev.which ==27) { $("#tip1").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); $("a#stoptitle").focus(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").mouseover(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").blur(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").mouseleave(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").keydown(function(ev){ if (ev.which ==27) { $("#tip2").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); }); // End This code is added by iTalent as part of iTrack 1859082
Top Solution Authors