Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
So, I am trying to use PowerBI analysis to figure out employee throughput. The data set has date & Time, User, Order # and zone. So I need to count the number of orders done in a zone and divide it by the duration they were in that zone.
I can do that! My problem is calculating when a person changes between zones.
Currently to determine duration when someone is in a zone all day, I subtract the start time from end time (and multiply by 24):
INT Start Time = CALCULATE(MIN(ActivityTracking[Time]),Filter(All(ActivityTracking),ActivityTracking[Zone]="INT"),Filter(All(ActivityTracking),ActivityTracking[User]=Users[User]))
INT End Time = CALCULATE(MAX(ActivityTracking[Time]),Filter(All(ActivityTracking),ActivityTracking[Zone]="INT"),Filter(All(ActivityTracking),ActivityTracking[User]=Users[User]))
What I would need to do is sum up the duration of multiple instances of being in a zone, and have that total be the divisor.
Any ideas would be appreciated.
Hi @steigelbill
We can add a row to evaluate the duration per user per zone. Then we can sum up the durations of many instances.
DuringPerUserPerZone = ( CALCULATE ( MAX ( ActivityTracking[Date Created] ), FILTER ( ActivityTracking, ActivityTracking[User] = EARLIER ( ActivityTracking[User] ) && ActivityTracking[Zone] = EARLIER ( ActivityTracking[Zone] ) && ActivityTracking[Date Created].[Date] = EARLIER ( ActivityTracking[Date Created].[Date] ) ) ) - CALCULATE ( MIN ( ActivityTracking[Date Created] ), FILTER ( ActivityTracking, ActivityTracking[User] = EARLIER ( ActivityTracking[User] ) && ActivityTracking[Zone] = EARLIER ( ActivityTracking[Zone] ) && ActivityTracking[Date Created].[Date] = EARLIER ( ActivityTracking[Date Created].[Date] ) ) ) ) * 24
DuringPerUserPerDay = CALCULATE ( SUM ( ActivityTracking[DuringPerUserPerZone] ), FILTER ( ActivityTracking, ActivityTracking[User] = EARLIER ( ActivityTracking[User] ) && ActivityTracking[Date Created].[Date] = EARLIER ( ActivityTracking[Date Created].[Date] ) ) )
NumberOfOrders = CALCULATE ( COUNT ( ActivityTracking[LPN] ), FILTER ( ActivityTracking, ActivityTracking[User] = EARLIER ( ActivityTracking[User] ) && ActivityTracking[Date Created].[Date] = EARLIER ( ActivityTracking[Date Created].[Date] ) ) )
Result = [DuringPerUserPerDay] / [NumberOfOrders]
Or we can use a measure with the new column.
MesureResult = SUM ( ActivityTracking[DuringPerUserPerZone] ) / COUNT ( ActivityTracking[LPN] )
Best Regards!
Dale
Hi @steigelbill,
Could you please mark the proper post as answer if it worked? More about this topic, please feel free to post here.
Best Regards!
Dale
User | Count |
---|---|
102 | |
69 | |
51 | |
48 | |
47 |