Forum Discussion
Filter days based on weekday
Hi Everyone,
I have a scenario wherein I want to filter the data on date column based on current day in the query editor.
If refreshing on Monday, filter data from last 3 days(Sunday, Saturday & Friday) of date column.
If refreshing on any other day(Tuesday to Friday), filter data from last 1 day of date column.
I tried both these & they work individually, but unfortunately I`m unable to get the desired result without changing these frequently.
1.
= Table.SelectRows(#"Added Custom4", each [StartDate] >= Date.From(Date.AddDays(Date.From(DateTime.LocalNow()),-Date.DayOfWeek(Date.From(DateTime.LocalNow()),5))))
2.
= Table.SelectRows(#"Added Custom4", each [StartDate] >= Date.From(Date.AddDays(DateTime.LocalNow(), -1)))
Expected Output
For eg, today is 03rd Mar (Thursday) the report should filter dates greater than 02nd Mar (Wednesday) & if today is 28 Feb (Monday) then report filters date greater than 25 Feb (Friday)
Please help !!
Thanks in advance 😊
Anonymous , Try = Table.SelectRows(#"Added Custom", each [StartDate] >= Date.From(Date.AddDays(DateTime.LocalNow(), (-1 * (if Date.DayOfWeek(DateTime.Date(DateTime.FixedLocalNow())) =0 then 3 else 1 )))))
5 Replies
- lbendlinSuper User
Please provide sanitized sample data that fully covers your issue. If you paste the data into a table in your post or use one of the file services it will be easier to work with. Avoid posting screenshots of your source data if possible.
Please show the expected outcome based on the sample data you provided. Screenshots of the expected outcome are ok. - amitchandakSuper User
Anonymous , Try like
Table.SelectRows(#"Added Custom4", each [StartDate] >= Date.From(Date.AddDays(DateTime.LocalNow(), -1* if Date.DayOfWeek(DateTime.Date(DateTime.LocalNow())) =0 then 3 else 1)))
- AnonymousNot applicable
Thanks Amit. I tried the formula & unfortuantely got a syntax error. Please assist
- amitchandakSuper User
Anonymous , Try = Table.SelectRows(#"Added Custom", each [StartDate] >= Date.From(Date.AddDays(DateTime.LocalNow(), (-1 * (if Date.DayOfWeek(DateTime.Date(DateTime.FixedLocalNow())) =0 then 3 else 1 )))))