Forum Discussion
calendar with today function
- Anonymous9 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.
- Anonymous9 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.
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.
- Stuk9 years agoHelper 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"
- Anonymous9 years agoNot 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.
- Anonymous9 years agoNot applicable
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.
- Stuk9 years agoHelper I
thanks for the answer but when i'm trying to use date function it tell me that i need at least 3 arguments in this function
(sorry it's the french version of power bi)