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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
CornelisV
Advocate II
Advocate II

Create new summarized table and skip blanks

Dear all,

 

I have a table with 3 columns:

TSPhase 1Phase2
01:00  
02:00Start 
03:00  
04:00  
05:00  
06:00 End
07:00 End
08:00 End
09:00  
10:00  

 

And the final output must be a new table, without discarding the table above:

TSPhase
02:00Start
06:00

End

 

Could you please demonstrate how to resolve?

 

Best regards,

 

Cornelis

2 ACCEPTED SOLUTIONS
Anonymous
Not applicable

Hi @CornelisV ,

 

In your example, if you only want to keep the first record where the value of the phase column is "end", please try this

Table 2 = 
var _startTime =MAXX( FILTER( 'Table',[Phase 1]="Start"),[TS])
var _endTime = CALCULATE(MIN('Table'[TS]),  FILTER('Table',[Phase2]="End"&&[TS]>=_startTime))
RETURN
     SELECTCOLUMNS(
        {
            (_startTime, "Start"),
            (_endTime, "End")
        },
        "Ts", [Value1],
        "Phase", [Value2]
    )

vxiaocliumsft_0-1731380145904.png

 

 

Best Regards,

Wearsky

View solution in original post

Ashish_Mathur
Super User
Super User

Hi,

This M code works

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"TS"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Columns", {"Value"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Duplicates",{{"TS", type time}})
in
    #"Changed Type"

Hope this helps.

Ashish_Mathur_0-1731382198629.png

 


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

10 REPLIES 10
Ashish_Mathur
Super User
Super User

Hi,

This M code works

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"TS"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Other Columns",{"Attribute"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Columns", {"Value"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Duplicates",{{"TS", type time}})
in
    #"Changed Type"

Hope this helps.

Ashish_Mathur_0-1731382198629.png

 


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Hello @Ashish_Mathur ,

 

Thank you for your solution, the UnpivotOtherColums is doing the job and subsequently the distinct step.

 

Best regards,

 

Cornelis

You are welcome.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

Hi @CornelisV ,

 

In your example, if you only want to keep the first record where the value of the phase column is "end", please try this

Table 2 = 
var _startTime =MAXX( FILTER( 'Table',[Phase 1]="Start"),[TS])
var _endTime = CALCULATE(MIN('Table'[TS]),  FILTER('Table',[Phase2]="End"&&[TS]>=_startTime))
RETURN
     SELECTCOLUMNS(
        {
            (_startTime, "Start"),
            (_endTime, "End")
        },
        "Ts", [Value1],
        "Phase", [Value2]
    )

vxiaocliumsft_0-1731380145904.png

 

 

Best Regards,

Wearsky

Hello @Anonymous ,

 

Clearly a different approach. It works, thank you.

 

Best regards,

 

Cornelis

FreemanZ
Super User
Super User

hi @CornelisV ,

 

In Power Query, try like:

 

merge phase1 and phase2 columms

select the merged columm, remove blank and remove duplicate rows

Bibiano_Geraldo
Super User
Super User

HI @CornelisV ,

Create a new table in Power BI using the following DAX formula:

FinalTable = 
FILTER(
    UNION(
        SELECTCOLUMNS(
            FILTER(YourOriginalTable, NOT(ISBLANK(YourOriginalTable[Phase 1]))),
            "TS", YourOriginalTable[TS],
            "Phase", YourOriginalTable[Phase 1]
        ),
        SELECTCOLUMNS(
            FILTER(YourOriginalTable, NOT(ISBLANK(YourOriginalTable[Phase 2]))),
            "TS", YourOriginalTable[TS],
            "Phase", YourOriginalTable[Phase 2]
        )
    ),
    NOT(ISBLANK([Phase]))
)

 

Note: Make sure to change tables and columns names with your owns.
If this answer help you, please give a Kudo and mark as solution.

 

Thank you

Hi @Bibiano_Geraldo 

 

Thank you for your contribution, that looks promising.

I have checked your solution and this is what I get:

Remove double.png

I suppose that DISTINCT should be added. What is your opinion?

 

Best regards,

 

**bleep**

Hi, 
Adding DISTINCT can be a good idea if you want to ensure that your FinalTable does not contain duplicate rows. Here’s how you can modify your DAX formula to include DISTINCT:

 

FinalTable = 
DISTINCT(
    FILTER(
        UNION(
            SELECTCOLUMNS(
                FILTER(YourOriginalTable, NOT(ISBLANK(YourOriginalTable[Phase 1]))),
                "TS", YourOriginalTable[TS],
                "Phase", YourOriginalTable[Phase 1]
            ),
            SELECTCOLUMNS(
                FILTER(YourOriginalTable, NOT(ISBLANK(YourOriginalTable[Phase 2]))),
                "TS", YourOriginalTable[TS],
                "Phase", YourOriginalTable[Phase 2]
            )
        ),
        NOT(ISBLANK([Phase]))
    )
)

 

Hello @Bibiano_Geraldo ,

 

Yes, that is something what I have thought.:

 

Table = DISTINCT(FILTER(
    UNION(
        SELECTCOLUMNS(
            FILTER('Sheet1', NOT(ISBLANK('Sheet1'[Phase 1]))),
            "TS", 'Sheet1'[TS],
            "Phase", 'Sheet1'[Phase 1]
        ),
        SELECTCOLUMNS(
            FILTER('Sheet1', NOT(ISBLANK('Sheet1'[Phase2]))),
            "TS", 'Sheet1'[TS],
            "Phase", 'Sheet1'[Phase2]
        )
    ),
    (NOT(ISBLANK([Phase]))
)))
 
However, it does not remove multiple rows.
 
Best regards,
 
Cornelis
 
 

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 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.

Top Solution Authors
Top Kudoed Authors