Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Anonymous
Not applicable

DATEADD in calculated table cannot use column

Hello,

 

I have following code that creates calculated table with dates for 12 months rolling period.

For some reason I cannot use DATEADD function using column (it gets underlined as error and table does not materialize). I have this stupid workaround to use just [YearMonthTrunc_B]>([YearMonthTrunc_A]-365) but this is causing some issues for leap-years.

 

Is there something better to use than DATEADD?

 

Thanks for any response,

Zuzana

 

Table = 
var monthrange = SELECTCOLUMNS( ADDCOLUMNS(SUMMARIZECOLUMNS('_Date - renewal'[YearMonthTrunc])
                                ,"YearMonth",FORMAT('_Date - renewal'[YearMonthTrunc],"YYYY/MM"))
                 ,"YearMonth_A",[YearMonth]
                 ,"YearMonthTrunc_A",[YearMonthTrunc])
var rollingperiod = SELECTCOLUMNS( ADDCOLUMNS(SUMMARIZECOLUMNS('_Date - renewal'[YearMonthTrunc])
                                   ,"YearMonth",FORMAT('_Date - renewal'[YearMonthTrunc],"YYYY/MM"))
                 ,"YearMonth_B",[YearMonth]
                 ,"YearMonthTrunc_B",[YearMonthTrunc])
                                  
return
FILTER(CALCULATETABLE(CROSSJOIN(monthrange,rollingperiod))
       ,AND([YearMonthTrunc_B]<=[YearMonthTrunc_A]
       ,[YearMonthTrunc_B]>DATEADD([YearMonthTrunc_A],-12,MONTH))
       )
            

Table '_Date - renewal' is also calculated:

_Date - renewal = 
ADDCOLUMNS (
CALENDAR (min(data[start_date]),TODAY()),
"YearMonthTrunc", date(year([date]),month([date]),1),
 
1 ACCEPTED SOLUTION
Anonymous
Not applicable

Functions that work with dates need input that is a DATE (and even though sometimes type coercion kicks in, you should NEVER rely on that), so please make sure you have the right input into your functions. What's more, some of them need input in the form of a column with specific data types, some work on pure dates (disconnected from any tables). For the correct syntax and data types, please refer to DAX Guide. You'll find everything you need in there.

 

By the way...

 

var __today = TODAY()
var __todayBackInTime = EDATE( __today, -12 ) 
return
	{ __todayBackInTime }

 

Best

Darek

View solution in original post

1 REPLY 1
Anonymous
Not applicable

Functions that work with dates need input that is a DATE (and even though sometimes type coercion kicks in, you should NEVER rely on that), so please make sure you have the right input into your functions. What's more, some of them need input in the form of a column with specific data types, some work on pure dates (disconnected from any tables). For the correct syntax and data types, please refer to DAX Guide. You'll find everything you need in there.

 

By the way...

 

var __today = TODAY()
var __todayBackInTime = EDATE( __today, -12 ) 
return
	{ __todayBackInTime }

 

Best

Darek

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.