How to Show Values in Millions in Power BI
Showing big numbers on a dashboard can make your reports look cluttered and hard to read. Instead of displaying a value like 12,345,678, formatting it as 12.3M or $12M makes the information much easier to process at a glance. This article will walk you through a few different ways to show values in millions in Power BI, from a quick and easy visual fix to more powerful and flexible DAX-driven approaches.
Why Format Numbers as Millions?
Before diving into the "how," it's worth understanding the "why." Consistently formatting large numbers offers a few huge benefits for anyone reading your reports.
- Improved Readability: The primary goal is to make your visuals clean and scannable. Your audience can instantly grasp the scale of a number without having to count digits or commas. Compare "$15,221,489" to "$15.2M" - the second is obviously faster to interpret.
- A Professional Look: Clean, uncluttered dashboards feel more polished and professional. It shows you've considered the user experience and have designed your report to communicate information effectively.
- Better Use of Space: When working with tables, charts, and card visuals, space is limited. Shortening your numbers ("$15.2M" instead of "$15,221,489.55") prevents text from wrapping or getting cut off, keeping your design tidy.
Method 1: The "Display Units" Feature (The Quickest Way)
If you're looking for a quick fix for a specific visual, Power BI's built-in "Display units" feature is your best friend. This is the simplest method, requires zero code, and can be applied in just a few clicks. It's perfect for making fast adjustments directly on a chart or card.
Let's say you have a Card visual showing total sales that you want to display in millions.
Step-by-Step Instructions:
- Select the visual you want to format on your report canvas (e.g., a bar chart, a card, a KPI).
- With the visual selected, navigate to the Visualizations pane on the right side of the screen.
- Click on the paintbrush icon labeled "Format your visual."
- The sections you see here will depend on your visual type.
- Scroll down until you find the "Display units" option. It will likely be set to "Auto" by default.
- Click the dropdown menu and select Millions.
That's it! Your numbers will instantly update to show the "M" suffix. You can also specify the number of decimal places in the "Value decimal places" box right below it to switch between "$15M," "$15.2M," or "$15.23M".
Free PDF Guide
AI for Data Analysis Crash Course
Learn how to get AI to do data analysis for you — the best tools, prompts, and workflows to go from raw data to insights without writing a single line of code.
Pros of this Method:
- Extremely fast and easy to apply.
- No DAX (Data Analysis Expressions) knowledge is required.
Cons of this Method:
- The formatting is applied only to that one specific visual element. If you use the same sales value elsewhere, you'll have to reapply the setting.
- It offers limited customization. You get "K" for thousands, "M" for millions, "B" for billions, and that's about it. You can't change "M" to "Million" or control the formatting in more advanced ways.
Method 2: Creating a DAX Measure with the FORMAT Function
For more control, you can create a new DAX measure that formats your number as text. The FORMAT function is powerful because it allows you to define exactly how your value should appear, including currency symbols, commas, and custom suffixes like "M".
This method is best when you want a specific style that the Display units feature doesn't offer. However, it comes with a very important tradeoff.
Heads Up: The FORMAT function converts your numeric value into a text string. This means you can't use the output of this measure in further mathematical calculations (like summing it up) or expect it to sort correctly as a number. It's great for display on cards or as a table value, but not for use as an axis on a chart.
How to Use the FORMAT Function:
Let's assume you have a base measure called [Total Sales]. To create a new measure formatted for millions:
- Navigate to the Data pane, right-click on the table where you want to add the measure, and select New measure.
- In the formula bar that appears, enter the following DAX formula:
Sales in Millions Text = FORMAT([Total Sales] / 1000000, "$0.0M")
Breaking Down the Formula:
[Total Sales] / 1000000: First, we divide our original sales number by one million to scale it down."$0.0M": This is the format string that tells Power BI how to display the result.
You can get creative here. For example, if you wanted to display it as "$15.2 Million" instead, your format string would look like this:
Sales in Millions Text = FORMAT([Total Sales] / 1000000, "$#,##0.0 ""Million""")
(Note the double quotes around "Million" tell DAX it's a literal text string).
Method 3: Dynamic Format Strings (The Best Practice)
What if you want the flexibility of a custom format but still need your measure to behave like a number? This is where dynamic format strings come in. This advanced method is the most robust and elegant solution because it keeps the underlying value as a number (so you can still calculate with it) while applying a custom format on top.
With this approach, you can create logic that automatically shows "K" for thousands, "M" for millions, and "B" for billions based on the value itself.
How to Set Up a Dynamic Format String:
- In Power BI Desktop, navigate to the Model View (the third icon on the left-hand navigation pane).
- In the Data pane on the right, find and select the base measure you want to format (e.g.,
[Total Sales]). Do not create a new measure for this. - With the measure selected, look at the Properties pane. Under the Formatting section, click the dropdown menu next to Format and select Dynamic.
- A formula bar will appear above the main window. Here, you'll write a DAX expression that returns a format string based on your conditions.
- Enter the following DAX formula in the formula bar:
SWITCH( TRUE(), ABS([Total Sales]) >= 1000000000, "$#,0.0,,B", ABS([Total Sales]) >= 1000000, "$#,0.0,M", ABS([Total Sales]) >= 1000, "$#,0.K", "$#,0" )
Free PDF Guide
AI for Data Analysis Crash Course
Learn how to get AI to do data analysis for you — the best tools, prompts, and workflows to go from raw data to insights without writing a single line of code.
Understanding This DAX Expression:
This code checks the value of [Total Sales] and returns a different format string for each condition:
SWITCH(TRUE(), ...): This is a clean way of writing a series of IF...THEN statements. It will go through each line and stop at the first one that is true.ABS([Total Sales]): We use the absolute value to ensure the formatting works correctly for both positive and negative numbers.- For Billions: If the value is greater than or equal to 1 billion, it uses the format
"$#,0.0,,B". The two commas are key here: Each comma effectively divides the number by 1,000. So, two commas divide it by 1,000,000. Add the "B" at the end, and you get billions! - For Millions: If the value is over 1 million, it uses
"$#,0.0,M". One comma divides by 1,000 and appends an "M." - A Default: If the value is less than 1,000, it applies standard currency formatting with a thousand separator (
"$#,0").
Once you confirm this formula, your [Total Sales] measure will now automatically display with the appropriate K/M/B suffix wherever you use it, while still remaining a usable number for calculations, sorting, and charting.
Final Thoughts
Choosing how to display your numbers in Power BI comes down to balancing ease of use with flexibility. You can use the quick "Display units" feature for one-off visual cleanups, the FORMAT function for custom text labels, or dive into dynamic format strings for the most powerful and scalable solution. Taking the time to format your values makes your reports cleaner, more professional, and easier for your team to understand.
All these methods help make the final report easier to understand, but the process of getting there still involves manual clicks, careful DAX writing, and setup. At Graphed, we think getting insights should be much faster. Our platform connects to all your marketing and sales data sources in real-time. Instead of building visuals and setting up formatting manually, you can just ask in plain language, "show me a dashboard of a sales trend for the past year broken down by country," and it's built automatically, formatted for clarity. You get to the answer in seconds, not hours.
Related Articles
Facebook Ads for Dentists: The Complete 2026 Strategy Guide
Learn how to run Facebook ads for dentists in 2026. Discover proven strategies, targeting tips, and ROI benchmarks to attract more patients to your dental practice.
Facebook Ads for Gyms: The Complete 2026 Strategy Guide
Master Facebook advertising for your gym in 2026. Learn the proven 6-section framework, targeting strategies, and ad formats that drive memberships.
Facebook Ads for Home Cleaners: The Complete 2026 Strategy Guide
Learn how to run Facebook ads for home cleaners in 2026. Discover the best ad formats, targeting strategies, and budgeting tips to generate more leads.