how to exclude all last Wednesday of every quarter?

How can I create a beastmode that exclude these dates from showing up in a card»
3/29/23

6/28/23

9/27/23

12/27/23

but also make it dynamic so that I dont need to hardcode these dates but it will exclude all last Wednesday of every quarter?

thanks!

Best Answer

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    Alternatively here's a beast mode version:

    CASE WHEN MONTH(`dt`) IN (3,6,9,12) AND DAYOFWEEK(LAST_DAY(`dt`)) < 4 AND `dt` = LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) + 3) DAY THEN 'Exclude'
    WHEN MONTH(`dt`) IN (3,6,9,12) AND DAYOFWEEK(LAST_DAY(`dt`)) >= 4 AND `dt` = LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) - 4) DAY THEN 'Exclude'
    ELSE 'Include'
    END

    MONTH(`dt`) IN (3,6,9,12)
    

    Make sure it's the last month in the quarter

    DAYOFWEEK(LAST_DAY(`dt`)) < 4
    

    Different logic for the if the last day falls on Sun-Tues

    LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) + 3) DAY
    

    Subtract the day of week plus three additional days to get the Wednesday from the prior week

    LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) - 4) DAY
    

    Alternative logic if Wed-Sat - Subtract 4 less than the days from the day of the week - In other words, Find Sunday - subtract dayofweek - and then add 4 days to get to wednesday.

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**

Answers

  • ColemenWilson
    edited June 2023

    This is best done in a dataflow. There is a free dataset called "Calendar" that you can find in the appstore by searching "Domo Dimensions" and then selecting "Calendar.csv" from the available options:

    Next, you will want to bring this into your ETL and apply a filter to only return wednesday values. Then, use a group by tile to group by quarter & year (`q` & `y` fields in the dataset) and use "Last Value" as the group by type. Now you will have the last wednesday of each quarter. You can then join that with your data. Now in the card all you have to do is create a beastmode (this can also be done in the etl) that says when the date = a non-null value in the last wednesday column, then exclude from the card.

    If I solved your problem, please select "yes" above

  • GrantSmith
    GrantSmith Coach
    Answer ✓

    Alternatively here's a beast mode version:

    CASE WHEN MONTH(`dt`) IN (3,6,9,12) AND DAYOFWEEK(LAST_DAY(`dt`)) < 4 AND `dt` = LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) + 3) DAY THEN 'Exclude'
    WHEN MONTH(`dt`) IN (3,6,9,12) AND DAYOFWEEK(LAST_DAY(`dt`)) >= 4 AND `dt` = LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) - 4) DAY THEN 'Exclude'
    ELSE 'Include'
    END

    MONTH(`dt`) IN (3,6,9,12)
    

    Make sure it's the last month in the quarter

    DAYOFWEEK(LAST_DAY(`dt`)) < 4
    

    Different logic for the if the last day falls on Sun-Tues

    LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) + 3) DAY
    

    Subtract the day of week plus three additional days to get the Wednesday from the prior week

    LAST_DAY(`dt`) - INTERVAL (DAYOFWEEK(LAST_DAY(`dt`)) - 4) DAY
    

    Alternative logic if Wed-Sat - Subtract 4 less than the days from the day of the week - In other words, Find Sunday - subtract dayofweek - and then add 4 days to get to wednesday.

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**