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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Krivger
Regular Visitor

Night shift (logic, calculation)

Hi everybody,

I'm looking for a solution, but I can't find it. I would like to know the time worked.

Info:
- People work in the morning, afternoon and night. Overtime is also possible.

- Thousands of posts are made in a day, that's thousands of time data. So there is not only a beginning and an end.

- Morning shift: 06-14 (can be overtime: 02-14, 06-18)

- Afternoon shift: 14-22 (can be overtime: 10-22, 14-02)

- Night shift: 22-06 (can be overtime: 18-06, 22-10)

MIN - MAX works in the morning and in the afternoon, because the time data comes one after the other. It does not work at night because it is separate, e.g.: 0:00 (start) -> (end) 6:00 + 22:00 (start) -> (end) 0:00. This is a MIN - MAX 24h.

 

Krivger_0-1668158462675.png

 

 

 

time worked = 
VAR balans =
    CALCULATE (
        MAX (EVENTHistory[hour]),
        FILTER (
            ALLSELECTED ( 'EVENTHistory' ),
            EARLIER (EVENTHistory[worker]) = 'EVENTHistory'[worker]
        )
    )
        - CALCULATE (
            MIN (EVENTHistory[hour]),
            FILTER (
                ALLSELECTED ( 'EVENTHistory' ),
                EARLIER (EVENTHistory[worker]) = 'EVENTHistory'[worker]
            )
        )
RETURN
    FORMAT ( INT ( balans * 24 ), "00" ) & ":"
        & FORMAT ( INT ( MINUTE ( balans ) ), "00" ) & ":"
        & FORMAT ( INT ( SECOND ( balans ) ), "00" )

 

 

 

Thank you in advance for your help.

2 REPLIES 2
Daryl-Lynch-Bzy
Resident Rockstar
Resident Rockstar

Hi @Krivger - part of your problem is that you are tying to calculate the difference based on TIME data type.  You need to consider changing to DATETIME data type.  Please consider the following example:

DarylLynchBzy_0-1668187462571.png

 

The Time Difference calculated column in the first row cannot calculate the difference because the Time does not recognise the change in date.  When the DateTime is captured, the time difference is correctly calculated.

Hi.
Unfortunately, your answer is not good. Normally it would be good, but in this case it is not good.

Time has shifted. 

1 day = (example) 2022.10.16 6:00:00 -> 2022.10.17 6:00:00 = 24 hours

I tried to subtract 6 hours, but it wasn't good either. If I look at it for a week, it's even worse. I have no idea 😞

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Solution Authors