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

Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM. Register now.

Reply
tino123
Regular Visitor

Complex data transform

I have large amounts of raw fault data.

codetimestatus
x1232019-04-22T23:57:00ok
x1232019-04-23T01:00:00faulty
x1232019-04-23T02:00:00ok
x1232019-04-23T23:00:00faulty
x1232019-04-24T01:00:00ok

I need to transform this to show how long an item has been in a faulty state on a given day. So on the 23rd, the item was in a faulty state between 1 and 2a.m and then again between 11pm until past midnight.

codeday% of day faulty
x12323/04/20198.30%

 (8.30% = 2/24 hours)

Can I do this easily in Power BI or should I use another tool such as Azure Data Factory?

1 ACCEPTED SOLUTION

Many thanks for your reply @Zubair_Muhammad . I found another solution first that somebody posted on stackoverflow:

 

https://stackoverflow.com/questions/55825688/tool-recommendation-for-data-transform

 

View solution in original post

3 REPLIES 3
Zubair_Muhammad
Community Champion
Community Champion

Hi @tino123 

 

try this mEASURE.

It works with sample data. I added few more rows to test

 

Measure =
SUMX (
    ADDCOLUMNS (
        Table1,
        "TimeDifference",
        VAR NextOk =
            MAXX (
                TOPN (
                    1,
                    FILTER ( Table1, [status] = "ok" && [time] > EARLIER ( [time] ) ),
                    [time], ASC
                ),
                [time]
            )
        VAR FirstStatusisOK =
            MINX ( TOPN ( 1, Table1, [time], ASC ), [status] ) = "ok"
        VAR FirstStatusOKtime =
            MINX ( TOPN ( 1, Table1, [time], ASC ), [time] )
        RETURN
            IF (
                ISBLANK ( NextOk ),
                24 - HOUR ( [Time] ),
                DATEDIFF ( [time], NextOk, HOUR )
            )
                + IF ( FirstStatusisOK, HOUR ( FirstStatusOKtime ) )
    ),
    IF ( [status] = "faulty", [TimeDifference] )
) / 24

Many thanks for your reply @Zubair_Muhammad . I found another solution first that somebody posted on stackoverflow:

 

https://stackoverflow.com/questions/55825688/tool-recommendation-for-data-transform

 

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.