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
elietech
Helper II
Helper II

Transform and summarize data from one table into another...

Ok, here is the problem I am faced with.  

 

I have a data set that records everytime a piece of equipment is removed from service for being unserviceable, and records the time it went "DOWN" (removed) and the time it went back "UP" (returned to service).

 

What I want to be able to do is determine based on this data overall serviceability rates for all the equipment in a given period of time, and I can't seem to wrap my head around the problem to get what I need.  

 

I know the total pieces of equipment available, but it might not be consistent on any given day.  (New equipment added, or old equipment removed/obsoleted etc.)

 

The Up/Down records look like this essentially:

EQUIP_ID, EVENT_ID, DOWN_START (Date/Time field), DOWN_STOP (Date/Time field), DOWN_DURATION (minutes)

 

The DOWN_DURATION could sometimes span multiple days.  Also, the quipment is expected to be UP more than it's DOWN, and it's certainly not down every day. 

 

Basically, what I want to do is use this data to create a table like this: 

 

DATE, EQUIP_ID, SERVICEABLE_TIME

 

where DATE is a given calendar date covering every date in a date range that could be filtered with a slicer, EQUIP_ID is the unique ID of the piece of equipment, and SERVICEABLE_TIME is the number of minutes the equipment was available and serviceable on that day.

 

So, I guess my issue here is where to even start with this.  Me and DAX don't get along very well, so I am really up against a wall on this one. 

 

My other thought, based on everyone's expertise here, is this even something that can be handled with DAX?  Or should I move this transformation further back in my stack and do it serverside in Javascript before it gets sent out over the API to PowerBI? 

 

 

 

1 ACCEPTED SOLUTION

Hi @elietech .

 

The error was related with the calculation when you have a single day, I already fixed it by changing the formula to:

measure = 
VAR Date_Selection =
    MAX ( 'Dates'[Date] )
VAR Date_Selection_Next = Date_Selection + 1
VAR temp_table =
    FILTER (
        ADDCOLUMNS (
            UpDown;
            "Start";
                DATE ( YEAR ( UpDown[DOWN_START] ); MONTH ( UpDown[DOWN_START] ); DAY ( UpDown[DOWN_START] ) );
            "End";
                DATE ( YEAR ( UpDown[DOWN_STOP] ); MONTH ( UpDown[DOWN_STOP] ); DAY ( UpDown[DOWN_STOP] ) )
        );
        [Start] <= Date_Selection
            && [End] >= Date_Selection
    )
VAR DateStart =
    IF (
        MINX ( temp_table; UpDown[DOWN_START] ) <= Date_Selection;
        Date_Selection;
        MINX ( temp_table; UpDown[DOWN_START] )
    )
VAR DateEnd =
    IF (
        MAXX ( temp_table; UpDown[DOWN_STOP] ) >= Date_Selection_Next;
        Date_Selection_Next;
        MAXX ( temp_table; UpDown[DOWN_STOP] )
    )
VAR Same_day_selection =
    IF (
        MAXX ( temp_table; [Start] ) = MINX ( temp_table; [End] )
            && MINX ( temp_table; UpDown[DOWN_START] ) >= Date_Selection;
        1
    )
RETURN
    IF (
        DateEnd = BLANK ();
        1440;
        IF (
            Same_day_selection = BLANK ();
            DATEDIFF ( Date_Selection; DateStart; MINUTE )
                + DATEDIFF ( DateEnd; Date_Selection_Next; MINUTE );
            1440
                - CALCULATE (
                    SUM ( UpDown[DOWN_DURATION] );
                    FILTER ( temp_table; UpDown[DOWN_START] = DateStart )
                )
        )
    )

 

Check result below and attach.

MFelix_0-1601547798420.png

 


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

10 REPLIES 10

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.