Forum Discussion
Function 'FORMAT' is not supported in DirectQuery mode
I'd really like to format the aggregated number I get from my data source. It's a large number that could use a thousands separator to make it more human readable.
But after discovering the FORMAT function, and trying to use it in a report with DirectQuery, I'm hit with the following error message:
Function 'FORMAT' is not supported in DirectQuery mode
As an unacceptable workaround I found, which is to Import the data instead of using DirectQuery (my data source is too large to be importing the data), here is what I'm after:
Here's the formula:
TotalCustomersFormatted = FORMAT(SUM(AggregatedTotalCustomers[TotalCustomers]), "#,###")
We could really use the FORMAT function in DirectQuery mode.
There are two potential solutions:
1. If all you want is to have a thousands separator, you can set the formatting on your measure:

2. You can use the Format function in DQ mode if you go to Options -> DirectQuery and click "Allow unrestricted measures in DirectQuery mode". Note that this will enable other functions whose performance is poor in DirectQuery mode, so save often.
I'm not sure why the Format function would be disabled, though. I'll inquire.
9 Replies
- JeffDuzakMicrosoft Employee
There are two potential solutions:
1. If all you want is to have a thousands separator, you can set the formatting on your measure:

2. You can use the Format function in DQ mode if you go to Options -> DirectQuery and click "Allow unrestricted measures in DirectQuery mode". Note that this will enable other functions whose performance is poor in DirectQuery mode, so save often.
I'm not sure why the Format function would be disabled, though. I'll inquire.
- v-dabatcMicrosoft Employee
Solution 2 is the one I went with:
- seannybgoodeAdvocate I
Don't see this option in Power BI Desktop anymore. Is there a modern option?
- JeffDuzakMicrosoft Employee
Meant to include this screenshot in my previous post:
- JeffDuzakMicrosoft Employee
I inquired about why the FORMAT function is disallowed in DQ mode, and the reason is because, if it is used unwisely, it could cause a performance issue. Specifically, we cannot rely on the backend datasource to do the formatting. So, if you were to use it within a table scanning function, that would force the calculation engine to request all the rows of data from the datasource so that the formatting could be performed on each row locally. This would be the case if you had a measure like this:
=AVERAGEX(BigTable, LEN(FORMAT([Value],"#,###")))
This example is utterly contrived, and I can't think of a non-contrived example. I think it is vastly more common to use FORMAT on the final result, which is perfectly safe. So, you can safely use "Allow unrestricted measures in DirectQuery mode" for your scenario.
- Greg_DecklerCommunity Champion
Can you use the Paintbrush icon to change the format? Click visual, click paintbrush icon, data label, set Display to None and Decimal to 0?