Forum Discussion
Power Query - Join/Merge based on Date between 2 dates
- 6 years ago
Hi there,
there is actually a pattern for this task that will probably increase speed: https://www.skillwave.training/vlookup-true-in-power-query/
Also see attached file.
It delivers correct results if the intervals are without gaps like in the data pedanticpad gave in his initial thread.
You could do it in query but it is easier done in DAX. Load both tables as is (with DateTime format for those columns), and use this expression in a calculated column on your Sales table. This assumes there is no relationship between the Sales and Period tables. If so, a small modification would be needed.
WeekPeriod = var currenttime = Sales[Timestamp]
return Calculate(min(Period[WeekNumber]), Period[WeekPeriod_StartTimeStamp]<=currenttime, Period[WeekPeriod_EndTimeStamp]>= currenttime)
If this works for you, please mark it as solution. Kudos are appreciated too. Please let me know if not.
Regards,
Pat
- pedanticpad6 years agoHelper II
mahoneypat, thanks for the help, but I would prefer to do it in power query rather than dax.
- edhans6 years agoCommunity Champion
The following in M will do what you want.
#"Added Custom" = Table.AddColumn(#"Changed Type", "Some Number", each let varDate = [Sales Date] in Table.SelectRows(Table, each [Date1] <= varDate and [Date2] >= varDate)[Some Number]{0} )You can see it in this PBIX file.
Note my data has some errors in the results because my Sales table has dates not in the Table date ranges. If you have the same issue you could wrap in a try/otherwise construct.
If you want more help, please provide data per links below, not screenshots. Thanks!
How to get good help fast. Help us help you.
How to Get Your Question Answered Quickly
How to provide sample data in the Power BI Forum- pedanticpad6 years agoHelper II
edhans that worked, but my refresh time for that table has gone from 30 seconds to nearly half an hour. Is there another option?