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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
Anonymous
Not applicable

calculate average time consumption

Hi all,

Need some help for the following.

Below is a simple table.

My question is as follows: how can I calculate the AVERAGE of the TIME_TO_COMPLETE_1 values per day?

Thanks!

John

 

Knipsel.JPG

1 ACCEPTED SOLUTION

You can change the measure to be as follows:

 

 

AverageTimeConsumption =
VAR Days = INT ( AVERAGEX ( 'Table', 'Table'[time_to_complete_1] ) )
VAR HoursValue = ( AVERAGEX ( 'Table', 'Table'[time_to_complete_1] ) - Days ) * 24
VAR Hours = INT ( HoursValue )
VAR MinsValue = ( HoursValue - Hours ) * 60
VAR Mins = INT ( MinsValue )
VAR Seconds = ROUND ( ( MinsValue - Mins ) * 60, 0 )
RETURN
    IF (
        AVERAGEX ( 'Table', 'Table'[time_to_complete_1] ) <> BLANK (),
        FORMAT ( Days, "00" ) & ":"
        & FORMAT ( Hours, "00" ) & ":"
        & FORMAT ( Mins, "00" ) & ":"
        & FORMAT ( Seconds, "00" )
    )

 

 

 

Credit goes to Philip Treacy who wrote a clear article on this topic.

View solution in original post

5 REPLIES 5
Mohammad_Refaei
Solution Specialist
Solution Specialist

You need to use only a simple average formula if you have a calendar table.

Please check this sample file

Anonymous
Not applicable

Hi @Mohammad_Refaei,

I looked at your sample file, which is clear to me (I have a calender table).

Last question: the outcome of the measure is a decimal number, where I want to see TIME.

Any tip how to convert?

Thanks so far!

John

 

You can change the measure to be as follows:

 

 

AverageTimeConsumption =
VAR Days = INT ( AVERAGEX ( 'Table', 'Table'[time_to_complete_1] ) )
VAR HoursValue = ( AVERAGEX ( 'Table', 'Table'[time_to_complete_1] ) - Days ) * 24
VAR Hours = INT ( HoursValue )
VAR MinsValue = ( HoursValue - Hours ) * 60
VAR Mins = INT ( MinsValue )
VAR Seconds = ROUND ( ( MinsValue - Mins ) * 60, 0 )
RETURN
    IF (
        AVERAGEX ( 'Table', 'Table'[time_to_complete_1] ) <> BLANK (),
        FORMAT ( Days, "00" ) & ":"
        & FORMAT ( Hours, "00" ) & ":"
        & FORMAT ( Mins, "00" ) & ":"
        & FORMAT ( Seconds, "00" )
    )

 

 

 

Credit goes to Philip Treacy who wrote a clear article on this topic.

Anonymous
Not applicable

perfect, thanks @Mohammad_Refaei !

vanessafvg
Super User
Super User

Hi john

firstly do you have a date table?  I can see you have a datetime field, if you wanting to calculate per day its probably best to create new column with only the date values not the time values.  You also need a date table, this is to manage the continuity of the date.  you would join the date table to your table.  You could then plot at a day level the average (time_to_complete)

 

if you share sample data it would be easy to do a mockup but you have only provided a picture which is not possible to import into an example, you would need to provide text.





If I took the time to answer your question and I came up with a solution, please mark my post as a solution and /or give kudos freely for the effort 🙂 Thank you!

Proud to be a Super User!




Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

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.

Top Solution Authors