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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
maartjedutchy
Frequent Visitor

Convert duration (text) to minutes

Dear PowerBI rockstars,

 

I have a duration (text format) which looks like 285d 4h 8m 10s (days hours minutes and seconds) which I want to convert to total minutes. However the duration could also be 1h 13m 15s (no whole days) or 1m 54s (no whole hours or days)

Examples:

281d 12h 13m 13s 
1h 8m 38s 
59m 50s 
34s 

 

I was thinking of doing some kind split column with a lookup/conditional column in PBI, if column contains "d' then take first 2 characters... But can't really figure it out in DAX. Does anybody have an idea how to convert this duration into minutes taking the various examples into account..?

 

Thanks,

 

Maartje

1 ACCEPTED SOLUTION
v-ljerr-msft
Microsoft Employee
Microsoft Employee

Hi @maartjedutchy,

 

Based on my test, the formula below should work in your scenario. Smiley Happy

Column = 
var indexOfD = SEARCH("d",Table1[Column1],1,1)
var indexOfH = SEARCH("h",Table1[Column1],1,1)
var indexOfM = SEARCH("m",Table1[Column1],1,1)
var indexOfS = SEARCH("s",Table1[Column1],1,1)
var d = VALUE(IF(indexOfD>1,MID(Table1[Column1],1,indexOfD-1),"0"))
var h = VALUE(IF(indexOfH-indexOfD=0,"0",IF(indexOfH-indexOfD>=4||indexOfH=3,MID(Table1[Column1],indexOfH-2,2),MID(Table1[Column1],indexOfH-1,1))))
var m = VALUE(IF(indexOfM-indexOfH=0,"0",IF(indexOfM-indexOfH>=4||indexOfM=3,MID(Table1[Column1],indexOfM-2,2),MID(Table1[Column1],indexOfM-1,1))))
var s = VALUE(IF(indexOfS-indexOfM=0,"0",IF(indexOfS-indexOfM>=4||indexOfS=3,MID(Table1[Column1],indexOfS-2,2),MID(Table1[Column1],indexOfS-1,1))))
return
d*3600+h*60+m+s/60

c1.PNG

 

Regards

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

None of the above worked for me. Here is my code for text in the form: 1d23h12m1s (numbers arbitrary). I also have it returning hours but that's an easy switch.

 

Hours =
// Days
var indexOfD = SEARCH("d",Table[Column],1,1)
var d = VALUE(IF(indexofD>1, MID(Table[Column],1,indexOfD-1), "0"))
var strAfterD = IF(indexofD>1, MID(Table[Column], indexofD+1, LEN(Table[Column])-indexofD), Table[Column])
//Hours
var indexOfH = SEARCH("h",strAfterD,1,1)
var h = VALUE(IF(indexofH>1, MID(strAfterD,1,indexOfH-1), "0"))
var strAfterH = IF(indexofH>1, MID(strAfterD, indexofH+1, LEN(strAfterD)-indexofH), strAfterD)
//Minutes
var indexOfM = SEARCH("m",strAfterH,1,1)
var m = VALUE(IF(indexofM>1, MID(strAfterH,1,indexOfM-1), "0"))
var strAfterM = IF(indexofM>1, MID(strAfterH, indexofM+1, LEN(strAfterH)-indexofM), strAfterH)
//Seconds
var indexOfS = SEARCH("s",strAfterM,1,1)
var s = VALUE(IF(indexofS>1, MID(strAfterM,1,indexOfS-1), "0"))
return d*24+h+m/60+s/3600
v-ljerr-msft
Microsoft Employee
Microsoft Employee

Hi @maartjedutchy,

 

Based on my test, the formula below should work in your scenario. Smiley Happy

Column = 
var indexOfD = SEARCH("d",Table1[Column1],1,1)
var indexOfH = SEARCH("h",Table1[Column1],1,1)
var indexOfM = SEARCH("m",Table1[Column1],1,1)
var indexOfS = SEARCH("s",Table1[Column1],1,1)
var d = VALUE(IF(indexOfD>1,MID(Table1[Column1],1,indexOfD-1),"0"))
var h = VALUE(IF(indexOfH-indexOfD=0,"0",IF(indexOfH-indexOfD>=4||indexOfH=3,MID(Table1[Column1],indexOfH-2,2),MID(Table1[Column1],indexOfH-1,1))))
var m = VALUE(IF(indexOfM-indexOfH=0,"0",IF(indexOfM-indexOfH>=4||indexOfM=3,MID(Table1[Column1],indexOfM-2,2),MID(Table1[Column1],indexOfM-1,1))))
var s = VALUE(IF(indexOfS-indexOfM=0,"0",IF(indexOfS-indexOfM>=4||indexOfS=3,MID(Table1[Column1],indexOfS-2,2),MID(Table1[Column1],indexOfS-1,1))))
return
d*3600+h*60+m+s/60

c1.PNG

 

Regards

I have similar data: duration formatted as text. When I applied the solution above, I get anerror saying the "MID" function has the wrong data type or an invalid value.

 

Any suggestions?

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Users online (12,708)