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

Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM. Register now.

Reply
alexricker0928
Frequent Visitor

Variable in DATEADD function

I'm trying to age certain dollar amounts based on the due date of the invoice. 

I have a 'before' date filter in my report that runs the report 'as of' whatever is selected. 

 

Let's say I run the report as of 11/06/2020, I want to calculate the Balance Last 30 Days based on the date selected in the filter. I essentially want to sum the dollar amounts on all transactions that have a due date less than 11/06/2020 and greater than 10/05/2020. Here is the calculation I currently have:

 

CT Balance Last 30 Days =
VAR CurrentDate =
IF(
COUNTROWS(DISTINCT(ALLSELECTED('DimDate-InvoiceDate'[Date]))) = 1,
SELECTEDVALUE('DimDate-InvoiceDate'[Date]),
MAX('DimDate-InvoiceDate'[Date])
)

Return
CALCULATE(SUM(OpenARPrepayments[AmountMST]),
FILTER(OpenARPrepayments,
OpenARPrepayments[DueDate] < CurrentDate
&&
OpenARPrepayments[DueDate] > DATEADD(CurrentDate,-30,DAY)
)
 
 
It won't let me pass the variable into the DATEADD function, but I can't think of another way to get this to work.
 
1 ACCEPTED SOLUTION
AntrikshSharma
Super User
Super User

@alexricker0928 DATEADD is a table function and in the first argument it expects a list of dates, if for some reasons you had to go by your way you have to wrap it inside curly braces { CurrentDate }

 

try if this works:

CT Balance Last 30 Days =
VAR CurrentDate =
    SELECTEDVALUE (
        'DimDate-InvoiceDate'[Date],
        MAX ( 'DimDate-InvoiceDate'[Date] )
    )
RETURN
    CALCULATE (
        SUM ( OpenARPrepayments[AmountMST] ),
        FILTER (
            OpenARPrepayments,
            OpenARPrepayments[DueDate] < CurrentDate
                && OpenARPrepayments[DueDate] > CurrentDate - 30
        )
    )

 

View solution in original post

2 REPLIES 2
AntrikshSharma
Super User
Super User

@alexricker0928 DATEADD is a table function and in the first argument it expects a list of dates, if for some reasons you had to go by your way you have to wrap it inside curly braces { CurrentDate }

 

try if this works:

CT Balance Last 30 Days =
VAR CurrentDate =
    SELECTEDVALUE (
        'DimDate-InvoiceDate'[Date],
        MAX ( 'DimDate-InvoiceDate'[Date] )
    )
RETURN
    CALCULATE (
        SUM ( OpenARPrepayments[AmountMST] ),
        FILTER (
            OpenARPrepayments,
            OpenARPrepayments[DueDate] < CurrentDate
                && OpenARPrepayments[DueDate] > CurrentDate - 30
        )
    )

 

What if the situation requires the filter to be "CurrentDate - 1 Quarter". What can you do then? (different quarter has different number of days)

 

thank you!

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.