Forum Discussion

Stuk's avatar
Stuk
Helper I
9 years ago
Solved

calendar with today function

Hello everyone

it may be stupid but i don't understand how to use Today function, it's the same with the Month function could you help me please?

  • Anonymous's avatar
    Anonymous
    9 years ago

    TODAY() returns a date already. You don't need to nest it in a DATE() function. The formula should be

     

    DateTable = CALENDAR(
    	DATE(2015; 6; 1);
    	TODAY()
    )

    I recommend naming your calendar table "DateTable" instead of "Calendar". The word Calendar is reserved for the function named CALENDAR(), so every time you refer to that table you would have to put its name in single quotes. I find typing extra quotes around my table names annoying and try to avoid it wherever possible.

     

    So you would be able to type

     

    Measure = CALCULATE( [MeasureName], DATESYTD(DateTable[Date]))

     

    instead of

     

    Measure = CALCULATE( [MeasureName], DATESYTD('Calendar'[Date]))

    because

     

    Measure = CALCULATE( [MeasureName], DATESYTD(Calendar[Date]))

    would return an error.

  • Anonymous's avatar
    Anonymous
    9 years ago

    The purpose of the DATE() function is to construct dates from components. It requires 3 separate arguments: a year, a month, and a day, each in the form of a whole number, and from that it returns a single item as its output: a full date. TODAY() takes no arguments, and also returns a single item: a full date. So TODAY() when nested in another function only constitutes one argument, not three, and also it doesn't fit the requirements of any of the three arguments needed for DATE(). It isn't a year, it isn't a month, and it isn't a day. It's a full date.

7 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    The error has nothing to do with the TODAY() function. You've made two mistakes: 1) you left out the semicolon between the first and second argument in the CALENDAR() function, and 2) you entered a year as the second argument when you should have entered a date. YEAR(TODAY()) would return "2017" which is not a date.

     

    Are you trying to generate a column between June 1, 2015 and today's date? If so, get rid of that YEAR() function and put a semicolon between the first date and the second.

    • Stuk's avatar
      Stuk
      Helper I

      i'm trying to create a calendar to the first date of my database to the actual day to be able use it as database for filters like "sales from the two last weeks"

      • Anonymous's avatar
        Anonymous
        Not applicable

        TODAY() returns a date already. You don't need to nest it in a DATE() function. The formula should be

         

        DateTable = CALENDAR(
        	DATE(2015; 6; 1);
        	TODAY()
        )

        I recommend naming your calendar table "DateTable" instead of "Calendar". The word Calendar is reserved for the function named CALENDAR(), so every time you refer to that table you would have to put its name in single quotes. I find typing extra quotes around my table names annoying and try to avoid it wherever possible.

         

        So you would be able to type

         

        Measure = CALCULATE( [MeasureName], DATESYTD(DateTable[Date]))

         

        instead of

         

        Measure = CALCULATE( [MeasureName], DATESYTD('Calendar'[Date]))

        because

         

        Measure = CALCULATE( [MeasureName], DATESYTD(Calendar[Date]))

        would return an error.