Forum Discussion

JenWilson's avatar
JenWilson
Icon for Helper II rankHelper II
3 years ago
Solved

Date Filters including 01/01/1900

I have a Orders table. It includes an Expected Delivery Date. This date field is manually filled in as these dates become known therefore there are many occurrances of the date 1/1/1900. 

The Expected Delivery Date is part of the table visual of the report. I want the user to be able to filter on the Expected Delivery Date column for occurrances of 1) dates that fall in the current week, and 2) dates have not yet been set (1/1/1900). 

I am almost there using the formula below, however the 2nd line (to capture the "Current Week" is set up to just look back 7 days from today. I need help with fixing that portion of the formula so that it looks at only dates that are in the week the report is viewed.

 

Promise Date Filters = IF(Orders[Expected Delivery Date]=DATE(1900,01,01),"No Delivery Date Set",
IF(DATEDIFF(Orders[Expected Delivery Date],TODAY(),DAY)<7,"Delivery Expected This Week"))
 
Thanks for your help! 
  • JenWilson Maybe:

    Promise Date Filters = 
    IF(
      Orders[Expected Delivery Date]=DATE(1900,01,01),
      "No Delivery Date Set",
      IF(
        YEAR(Orders[Expected Delivery Date])*100+ WEEKNUM(Orders[Expected Delivery Date]) = 
        YEAR(TODAY()) * 100 + WEEKNUM(TODAY()), 
        "Delivery Expected This Week"
      )
    )

    Also, you might want to use SWITCH(TRUE(), ...) in order to avoid nested IF statements.

8 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    JenWilson Maybe:

    Promise Date Filters = 
    IF(
      Orders[Expected Delivery Date]=DATE(1900,01,01),
      "No Delivery Date Set",
      IF(
        YEAR(Orders[Expected Delivery Date])*100+ WEEKNUM(Orders[Expected Delivery Date]) = 
        YEAR(TODAY()) * 100 + WEEKNUM(TODAY()), 
        "Delivery Expected This Week"
      )
    )

    Also, you might want to use SWITCH(TRUE(), ...) in order to avoid nested IF statements.

  • Greg_Deckler - I need to expand on the above formula to also include "Delivery Expected Last Week". How can I add that?
    Also, I am curious as to how this formula would look with SWITCH.

    Thank you! 

    • Greg_Deckler's avatar
      Greg_Deckler
      Icon for Community Champion rankCommunity Champion

      JenWilson I'm not clear on what you mean by including Delivery Expected Last Week. Can you clarify? Here is what it would look like as SWITCH:

      Promise Date Filters = 
      SWITCH( TRUE(),
        Orders[Expected Delivery Date]=DATE(1900,01,01), "No Delivery Date Set",
      
        YEAR(Orders[Expected Delivery Date])*100+ WEEKNUM(Orders[Expected Delivery Date]) = 
          YEAR(TODAY()) * 100 + WEEKNUM(TODAY()), "Delivery Expected This Week",
      
        BLANK()
      )
  • Hi, Greg

     

    I want to look back at orders that were expected Last Week (as a seperate filter). I am guessing that I just need to add another statement that resembles what you had written for "Delivery Expected This Week" (see below). But instead of looking for dates that are out in the future (next week) I would be looking for dates in the past that fall during the last week. 

    YEAR(Orders[Expected Delivery Date])*100+ WEEKNUM(Orders[Expected Delivery Date]) =
    YEAR(TODAY()) * 100 + WEEKNUM(TODAY()), "Delivery Expected This Week"

    • Greg_Deckler's avatar
      Greg_Deckler
      Icon for Community Champion rankCommunity Champion

      JenWilson OK, try this:

      Promise Date Filters = 
      SWITCH( TRUE(),
        Orders[Expected Delivery Date]=DATE(1900,01,01), "No Delivery Date Set",
      
        YEAR(Orders[Expected Delivery Date])*100+ WEEKNUM(Orders[Expected Delivery Date]) = 
          YEAR(TODAY()) * 100 + WEEKNUM(TODAY()), "Delivery Expected This Week",
      
        YEAR(Orders[Expected Delivery Date])*100+ WEEKNUM(Orders[Expected Delivery Date]) = 
          YEAR(TODAY()) * 100 + WEEKNUM(TODAY())-1, "Delivery Expected Last Week",
      
        BLANK()
      )
      • JenWilson's avatar
        JenWilson
        Icon for Helper II rankHelper II

        Greg_Deckler , I need to add another filter option that would label any dates farther past the "Delivery Expected Last Week". So I have-   YEAR(TODAY())*100 + WEEKNUM(TODAY())-1  to identify Delivery dates from last week, but how would I write an additional identifier for dates prior to "Last Week"?

        Also, can you please try to explain how this forumula actually works?

        YEAR(TODAY())*100 + WEEKNUM(TODAY())-1

         

        Thank you! 

         

        Jen

         

  • Greg_Deckler  that works!

     

    But can you help me understand what each of the weekly statements are asking for (1 pasted below). I am expecially confused by the *100+ WEEKNUM. Thanks! 

    YEAR(Orders[Expected Delivery Date])*100+ WEEKNUM(Orders[Expected Delivery Date]) = 
        YEAR(TODAY()) * 100 + WEEKNUM(TODAY()),