Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowThe 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.
I have a measure that is taking a whole number for the dataset representing minutes and converting it to mins, days, hrs. This measure is a text column and as such when I try to filter it is not filtering the way I would like. Smallest to largest should always be mins > hrs > days. This is how it is currently sorting:
Solved! Go to Solution.
Hi @AmberJane
I would suggest creating a measure with a dynamic format string for this, so that the measure is still evaluated as a numerical value (which can be sorted), but displayed with the appropriate formatting.
You would have to use a format string that produces the full text you want displayed enclosed in double quotes, conditional on the value (in minutes).
I've attached a small example showing how you could do this.
The important part is 3rd piece of code below which is the expression for the dynamic format string.
You could also use the expression you have already created for SLA Impact Converted, as long you enclose the result in double quotes similarly to below.
SLA Impact =
-- Underlying measure returning value in Minutes
SUM ( 'Table'[Duration mins] )
SLA Impact Converted =
[SLA Impact]
-- FORMAT STRING for SLA Impact Converted
VAR NumberFormatString = "0.0#" -- change as required
VAR MinsPerDay = 24 * 60
VAR MinsPerHour = 60
VAR DoubleQuote = """"
VAR MeasureValue = SELECTEDMEASURE ()
VAR FormattedValue =
SWITCH (
TRUE (),
MeasureValue >= MinsPerDay, FORMAT ( MeasureValue / MinsPerDay, NumberFormatString ) & " Days",
MeasureValue >= MinsPerHour, FORMAT ( MeasureValue / MinsPerHour, NumberFormatString ) & " Hrs",
FORMAT ( MeasureValue, NumberFormatString ) & " Mins"
)
VAR Result =
DoubleQuote & FormattedValue & DoubleQuote
RETURN
Result
Does something like this work for you?
Hi @AmberJane ,
Did the above suggestions help with your scenario? if that is the case, you can consider Kudo or Accept the helpful suggestions to help others who faced similar requirements.
If these also don't help, please share more detailed information and description to help us clarify your scenario to test.
How to Get Your Question Answered Quickly
Regards,
Xiaoxin Sheng
Hi @AmberJane
I would suggest creating a measure with a dynamic format string for this, so that the measure is still evaluated as a numerical value (which can be sorted), but displayed with the appropriate formatting.
You would have to use a format string that produces the full text you want displayed enclosed in double quotes, conditional on the value (in minutes).
I've attached a small example showing how you could do this.
The important part is 3rd piece of code below which is the expression for the dynamic format string.
You could also use the expression you have already created for SLA Impact Converted, as long you enclose the result in double quotes similarly to below.
SLA Impact =
-- Underlying measure returning value in Minutes
SUM ( 'Table'[Duration mins] )
SLA Impact Converted =
[SLA Impact]
-- FORMAT STRING for SLA Impact Converted
VAR NumberFormatString = "0.0#" -- change as required
VAR MinsPerDay = 24 * 60
VAR MinsPerHour = 60
VAR DoubleQuote = """"
VAR MeasureValue = SELECTEDMEASURE ()
VAR FormattedValue =
SWITCH (
TRUE (),
MeasureValue >= MinsPerDay, FORMAT ( MeasureValue / MinsPerDay, NumberFormatString ) & " Days",
MeasureValue >= MinsPerHour, FORMAT ( MeasureValue / MinsPerHour, NumberFormatString ) & " Hrs",
FORMAT ( MeasureValue, NumberFormatString ) & " Mins"
)
VAR Result =
DoubleQuote & FormattedValue & DoubleQuote
RETURN
Result
Does something like this work for you?
It worked. Very Cool!! I have never used dynamic formatting before. Thank you so much 🙂