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
HenryJS
Post Prodigy
Post Prodigy

Create Table - Week Completion Rows from date range

Hello everyone

I would like to create a new table (as shown in Table 2) from the data in Table 1.

The new table has one row for each candidate week end that is within the start and end date of the location.

Table 1 - 'Locations'

CandidateRefCandidateNamePlacementStartDatePlacementEndDate
62896Jamie01/04/202001/06/2020
19382Henry01/01/202001/02/2020
66279Jorge01/04/202001/05/2020

New table -

CandidateRefCandidateNameWeekend
62896Jamie05/04/2020
62896Jamie12/04/2020
62896Jamie19/04/2020
62896Jamie26/04/2020
62896Jamie03/05/2020
62896Jamie10/05/2020
62896Jamie17/05/2020
62896Jamie24/05/2020
62896Jamie31/05/2020
19382Henry05/01/2020
19382Henry12/01/2020
19382Henry19/01/2020
19382Henry26/01/2020
66279Jorge01/04/2020
66279Jorge08/04/2020
66279Jorge15/04/2020
66279Jorge22/04/2020
66279Jorge29/04/2020
1 ACCEPTED SOLUTION
FrankAT
Community Champion
Community Champion

Hello @HenryJS ,

you can do this with Power Query as follows:

// Table
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjOysDRT0lHySszNTAXSBob6Bib6RgZGBlCOGYQTqxOtZGhpbGEEFPZIzSuqhEobIqs1Qqg1MzMytwQKu6fmF6VjNdgUqjgWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [CandidateRef = _t, CandidateName = _t, PlacementStartDate = _t, PlacementEndDate = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"PlacementStartDate", type date}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Changed Type",{{"PlacementStartDate", Int64.Type}, {"PlacementEndDate", type date}}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Changed Type1",{{"PlacementEndDate", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type2", "Custom", each {[PlacementStartDate].. [PlacementEndDate]}),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type3" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type date}}),
    #"Inserted Day Name" = Table.AddColumn(#"Changed Type3", "Day Name", each Date.DayOfWeekName([Custom]), type text),
    #"Filtered Rows" = Table.SelectRows(#"Inserted Day Name", each ([Day Name] = "Sonntag")),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"PlacementStartDate", "PlacementEndDate", "Day Name"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Week Ending"}})
in
    #"Renamed Columns"

02-05-_2020_00-29-00.png

Greetings FrankAT

View solution in original post

6 REPLIES 6
HenryJS
Post Prodigy
Post Prodigy

Hi all,

 

I would like to create a new table (as shown in table 2) from the data in table 1.

 

The new table has a row for each candidates week ending that lies withint the placement start date and end date.

 

Table 1 - 'Placements'

 

CandidateRefCandidateNamePlacementStartDatePlacementEndDate
62896Jamie01/04/202001/06/2020
19382Henry01/01/202001/02/2020
66279George01/04/202001/05/2020

 

 

 

New Table - 

 

CandidateRefCandidateNameWeek Ending
62896Jamie05/04/2020
62896Jamie12/04/2020
62896Jamie19/04/2020
62896Jamie26/04/2020
62896Jamie03/05/2020
62896Jamie10/05/2020
62896Jamie17/05/2020
62896Jamie24/05/2020
62896Jamie31/05/2020
19382Henry05/01/2020
19382Henry12/01/2020
19382Henry19/01/2020
19382Henry26/01/2020
66279George01/04/2020
66279George08/04/2020
66279George15/04/2020
66279George22/04/2020
66279George29/04/2020

Hi @HenryJS ,

 

See the same thread I just replied below:

https://community.powerbi.com/t5/Desktop/Create-Table-Week-Completion-Rows-from-date-range/td-p/1062...

 

Pls note that the expected output about George has an error in Week ending dates,pls double check it.

 

Best Regards,
Kelly
Did I answer your question? Mark my post as a solution!
 

is it possible to do this in DAX?

FrankAT
Community Champion
Community Champion

Hello @HenryJS ,

you can do this with Power Query as follows:

// Table
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjOysDRT0lHySszNTAXSBob6Bib6RgZGBlCOGYQTqxOtZGhpbGEEFPZIzSuqhEobIqs1Qqg1MzMytwQKu6fmF6VjNdgUqjgWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [CandidateRef = _t, CandidateName = _t, PlacementStartDate = _t, PlacementEndDate = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"PlacementStartDate", type date}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Changed Type",{{"PlacementStartDate", Int64.Type}, {"PlacementEndDate", type date}}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Changed Type1",{{"PlacementEndDate", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type2", "Custom", each {[PlacementStartDate].. [PlacementEndDate]}),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type3" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type date}}),
    #"Inserted Day Name" = Table.AddColumn(#"Changed Type3", "Day Name", each Date.DayOfWeekName([Custom]), type text),
    #"Filtered Rows" = Table.SelectRows(#"Inserted Day Name", each ([Day Name] = "Sonntag")),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"PlacementStartDate", "PlacementEndDate", "Day Name"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom", "Week Ending"}})
in
    #"Renamed Columns"

02-05-_2020_00-29-00.png

Greetings FrankAT

v-kelly-msft
Community Support
Community Support

Hi @HenryJS

 

Create a new table using below dax expression:

 

Table 2 = CALENDAR(MIN('Table'[PlacementStartDate]),MAX('Table'[PlacementEndDate]))

 

Then create a column as below:

 

Column = IF(WEEKDAY('Table 2'[Date],2)=7,1,0)

 

Finally create a measure as below:

 

CandidateName = IF(SELECTEDVALUE('Table 2'[Date])>=MAX('Table'[PlacementStartDate])&&SELECTEDVALUE('Table 2'[Date])<=MAX('Table'[PlacementEndDate])&&MAX('Table 2'[Column])=1,MAX('Table'[CandidateName]),BLANK())

 

And you will see:

Annotation 2020-05-04 110450.png

For the related .pbix file,pls click here.

 

Best Regards,
Kelly
Did I answer your question? Mark my post as a solution!
amitchandak
Super User
Super User

Duplicate of : https://community.powerbi.com/t5/Desktop/Create-Table-Week-Ending-Rows-From-Date-Range/m-p/1061648

 

Refer to my blog on power bi: https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

 

Have week end date in your calendar to display

Week Start date = 'Date'[Date]+-1*WEEKDAY('Date'[Date],2)+1 //Monday
Week End date = 'Date'[Date]+ 7-1*WEEKDAY('Date'[Date],2) //Sunday

 

Week Start date = 'Date'[Date]+-1*WEEKDAY('Date'[Date],1)+1 //Sunday
Week End date = 'Date'[Date]+ 7-1*WEEKDAY('Date'[Date],1) //Saturday

 

For Calendar refer : https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...

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.