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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
TinyElephant
Helper III
Helper III

Calculate Utilization percentage

Consider the below table. I have a slicer list of employees and a Date Range visual. I want to display the utilization percentage on a Gauge chart. 

 

Utilization Percentage in a particular duration = (Total Business Hours - No Work Hours)/Total Business Hours

Where

Total Business Hours = Work Days x 8

Work Days = All Days in the duration - Holidays

 

TinyElephant_1-1628488072107.png

 

EmployeeWorkHoursDate
Person 1Task 1409-Aug-21
Person 1No Work209-Aug-21
Person 1Task 2209-Aug-21
Person 2Task1309-Aug-21
Person 2Task 2109-Aug-21
Person 2Leave409-Aug-21
Person 3No Work309-Aug-21
Person 3Task 2509-Aug-21
Person 1Holiday810-Aug-21
Person 2Holiday810-Aug-21
Person 3Holiday810-Aug-21
1 ACCEPTED SOLUTION

Hi @TinyElephant ,

 

If you want to filter out the Holiday or Overtime part, you can modify the following formula like below:

1 =
VAR total_bus =
    (
        COUNTROWS ( 'Table' )
            - CALCULATE (
                COUNTROWS ( 'Table' ),
                FILTER ( 'Table', 'Table'[Work] = "Holiday" || 'Table[Work]' = "Overtime" )
            )
    ) * 8
VAR no_work =
    SUMX ( FILTER ( 'Table', 'Table'[Work] = "No Work" ), 'Table'[Hours] )
RETURN
    DIVIDE ( total_bus - no_work, total_bus )


If the problem is still not resolved, please provide detailed error information and let me know immediately. Looking forward to your reply.


Best Regards,
Henry


If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

9 REPLIES 9
v-henryk-mstf
Community Support
Community Support

Hi @TinyElephant ,

 

Based on your needs, I create the corresponding formula, refer to the following:

1 =
VAR total_bus =
    (
        COUNTROWS ( 'Table' )
            - CALCULATE (
                COUNTROWS ( 'Table' ),
                FILTER ( 'Table', 'Table'[Work] = "Holiday" )
            )
    ) * 8
VAR no_work =
    SUMX ( FILTER ( 'Table', 'Table'[Work] = "No Work" ), 'Table'[Hours] )
RETURN
    DIVIDE ( total_bus - no_work, total_bus )


 If there is a problem, please point out the clear error and I will answer it for you as soon as possible.


Best Regards,
Henry


If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

It seems to work for now. A little bit more precision would be great.
Now I came to think of the situation when some employees might work on weekend and the table may have entries for these weekend work which needs to be ignored.

 

Is it possible to use the formulae (1 and 2) I annotated in the attached image?

 

TinyElephant_0-1628666597649.png

 

Hi @TinyElephant ,

 

If the formula is created correctly, adding it to the corresponding visual will work correctly.


Best Regards,
Henry


If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Is this syntax right for filtering out "overtime" entries? 

 

1 =
VAR total_bus =
    (
        COUNTROWS ( 'Table' )
            - CALCULATE (
                COUNTROWS ( 'Table' ),
                FILTER ( 'Table', 'Table'[Work] = "Holiday" && 'Table[Work]' = "Overtime" )
            )
    ) * 8
VAR no_work =
    SUMX ( FILTER ( 'Table', 'Table'[Work] = "No Work" ), 'Table'[Hours] )
RETURN
    DIVIDE ( total_bus - no_work, total_bus )

 

Hi @TinyElephant ,

 

If you want to filter out the Holiday or Overtime part, you can modify the following formula like below:

1 =
VAR total_bus =
    (
        COUNTROWS ( 'Table' )
            - CALCULATE (
                COUNTROWS ( 'Table' ),
                FILTER ( 'Table', 'Table'[Work] = "Holiday" || 'Table[Work]' = "Overtime" )
            )
    ) * 8
VAR no_work =
    SUMX ( FILTER ( 'Table', 'Table'[Work] = "No Work" ), 'Table'[Hours] )
RETURN
    DIVIDE ( total_bus - no_work, total_bus )


If the problem is still not resolved, please provide detailed error information and let me know immediately. Looking forward to your reply.


Best Regards,
Henry


If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

amitchandak
Super User
Super User

@TinyElephant , Do you have table with business days ?

Or that can be distinct values of dates ?

My raw data table has entries for each and every day. 

@TinyElephant , Try a measure like

 


var _bh = distinctCOUNT(Table[Employee])*distinctCOUNT(Table[Date]) *8
var _hr = sux(filter(Table, Table[Work] <> "No Work")
return
calculate(divide(_bh-_hr, _bh), filter(Table, Table[Work] <> "Holiday"))

It's showing some error with the syntax.

 

TinyElephant_0-1628493180107.png

 

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.