Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Power query If submit date between start date and end date, then "on time" else "late"

Hi,

 

I was wondering how you would input a string of text into a new column if submission date is between two dates (or greater than start date and smaller than end date). 

 

I've heard about datesbetween, but the syntax seems to mention CALCULATE, and I'm not calculating anything, just trying to filter for if the submit date is late or not. (Visual date slicers would be too tedious as well).

 

Thanks!

  • Hey,

     

    please be aware that the Submitted On datetime is greater than the End date.

     

    Where 3/03/2019 10:27:55 PM is close to the 4th of March

    the end date 3/03/2019 12:00:00 AM marks midnight between the 2nd and 3rd of march.

     

    If the time is not relevant you might consider to extract the date part from all of your columns or just add 1 day to the End column.

     

    Regards,

    Tom

  • Anonymous 

     

    As TomMartens  also suggested, in your case you can do the calculation using date part only

     

    so as a custom column try

     

    =if Date.From([Submitted On]) >= Date.From([Start]) and Date.From([Submitted On]) <= Date.From([End]) then "on time" else "late"

9 Replies

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

    Anonymous 

     

    Just make this small amendment to your formula

     

    =if [submitted on] >[Start] and [submitted on] <[End] 

    • Anonymous's avatar
      Anonymous
      Not applicable

      Zubair_Muhammad  Thanks for the quick reply! I've tried that, and "late" and "on time" do appear - except not in the right way. I know for a fact that in this set of data, no one submitted it late:

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

        Anonymous 

         

        I am little confused.

        The yellow highlighted "Submitted on" figures in your picture above appear to be between Start and End dates..So the formula should return late. Isn't it?

  • Hey,

     

    from the screenshot you posted it's clear that you are looking for a solution in M meaning Power Query.

     

    The formula has to look similar to this:

    if [Datum] >= [ShiftStart] and [Datum] <= [ShiftEind] then "this" else "that"

    Just use the column reference [Submitted On] after the and.

     

    The functions DATESBETWEEN and CALCULATE are DAX functions, even if both Power Query / M and DAX are able to create a calculated column that can be used for filtering in the final data model, they are different and both have their own subtleties. In this specific case it does not matter if you use Power Query / M or DAX.

     

    Regards,
    Tom

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      TomMartens Ah right, thanks for the clarification. I'm completely new to Power BI, and it's really been doing my head in.