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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Anonymous
Not applicable

How to make a new table based on entries from an old table, but with one line per month per project?

I am fairly new to Power BI.

I want to generate a new table based on entries from an old table. The new table should hold one line per month per project and order number for the time perriod listed in the old table. I made a dummy table to illustrate the problem. How to do this?

Thank you in advanced for your input!

 

Old Table   
Project#Order#MonthYear
1AJan2017
1AMar2017
1AMai2017
1BJan2016
2AMay2017
    
New Table  
Project#Order#MonthYear
1AJan2017
1AFeb2017
1AMar2017
1AApr2017
1AMai2017
1BJan2016
2AMay2017
1 ACCEPTED SOLUTION
v-yulgu-msft
Microsoft Employee
Microsoft Employee

Hi @Anonymous,

 

First, please add a conditional column in original table (suppose it's 'Test_2') in query editor mode.

1.PNG

 

In data view mode, create below summarized table with DAX:

Test_3 =
SUMMARIZE (
    Test_2,
    Test_2[Project#],
    Test_2[Order#],
    Test_2[Year],
    "StartMonth", MIN ( Test_2[MonthNumber] ),
    "EndMonth", MAX ( Test_2[MonthNumber] )
)

2.PNG

 

Create a calendar table and add Year, Month columns to it.

calendar TB =
FILTER (
    CALENDAR ( DATE ( 2016, 1, 1 ), DATE ( 2017, 12, 31 ) ),
    DAY ( [Date] ) = 1
)

MonthName in Calen = [Date].[Month]
MonthNo in Calen = [Date].[MonthNo]
Year in Calen = [Date].[Year]

3.PNG

 

Cross join above two tables.

Test_4 =
SELECTCOLUMNS (
    FILTER (
        CROSSJOIN ( Test_3, 'calendar TB' ),
        'calendar TB'[MonthNo in Calen] >= Test_3[StartMonth]
            && 'calendar TB'[MonthNo in Calen] <= Test_3[EndMonth]
            && Test_3[Year] = 'calendar TB'[Year in Calen]
    ),
    "Project#", [Project#],
    "Order#", [Order#],
    "Month", [MonthName in Calen],
    "Year", [Year]
)

4.PNG

 

Best regards,

Yuliana Gu

Community Support Team _ Yuliana Gu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
v-yulgu-msft
Microsoft Employee
Microsoft Employee

Hi @Anonymous,

 

First, please add a conditional column in original table (suppose it's 'Test_2') in query editor mode.

1.PNG

 

In data view mode, create below summarized table with DAX:

Test_3 =
SUMMARIZE (
    Test_2,
    Test_2[Project#],
    Test_2[Order#],
    Test_2[Year],
    "StartMonth", MIN ( Test_2[MonthNumber] ),
    "EndMonth", MAX ( Test_2[MonthNumber] )
)

2.PNG

 

Create a calendar table and add Year, Month columns to it.

calendar TB =
FILTER (
    CALENDAR ( DATE ( 2016, 1, 1 ), DATE ( 2017, 12, 31 ) ),
    DAY ( [Date] ) = 1
)

MonthName in Calen = [Date].[Month]
MonthNo in Calen = [Date].[MonthNo]
Year in Calen = [Date].[Year]

3.PNG

 

Cross join above two tables.

Test_4 =
SELECTCOLUMNS (
    FILTER (
        CROSSJOIN ( Test_3, 'calendar TB' ),
        'calendar TB'[MonthNo in Calen] >= Test_3[StartMonth]
            && 'calendar TB'[MonthNo in Calen] <= Test_3[EndMonth]
            && Test_3[Year] = 'calendar TB'[Year in Calen]
    ),
    "Project#", [Project#],
    "Order#", [Order#],
    "Month", [MonthName in Calen],
    "Year", [Year]
)

4.PNG

 

Best regards,

Yuliana Gu

Community Support Team _ Yuliana Gu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Thank you @v-yulgu-msft. This worked perfectly!

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

November Carousel

Fabric Community Update - November 2024

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

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.