Skip to main content
Community site session details

Community site session details

Session Id :
Power Apps - Building Power Apps
Answered

Formula Syntax; If(), Text(), and DateAdd specifically

(0) ShareShare
ReportReport
Posted on by 411

I'm new to powerapps and I'm having a bit of trouble understanding how the formulas work. I've not been finding anything to explain the syntax for multiple operations in the DateAdd function, though I *think* I found that in the If function, multiple operations are possible by separating with a semicolon. Trying to apply this information is getting very messy, since I so far haven't seen a way to create a new variable or refer to a variable that has been previously changed. Perhaps this would be better explained with an example.

 

 

If( 
Not(IsBlank(ThisItem.HolidayDate)),

Text(DateAdd(ThisItem.HolidayDate, Today() - 1900, Years), "[$-en-US]dddd, mmmm dd, yyyy"),

Text(DateAdd(DateAdd(Today(), HolidayMonth - Today(), Months), HolidayNumOfWeeksIn*7 + HolidayDayOfWeek - 1 - Today(), Days),
"[$-en-US]dddd, mmmm dd, yyyy")
)

This looks horribly convoluted to me, but there doesn't appear to be a good way to break these functions into smaller bits because there's no way to make or refer to a variable after it's been changed except to keep stacking the changes. This code produces a completely blank field. If I take away the "else" portion, it's still blank.

 

 

The breakdown of this would go as follows:

 

 

If the HolidayDate field is not blank (ie, a holiday with a known date like Christmas),

Find today's year and add it to HolidayDate, and subtract the year that HolidayDate comes with. 
(Basically, I'm trying to replace the year from the input with the current year.) Display this final date with the weekday, month, day, and year.
(No abbreviations for weekday and month)

Else, (There is no date ie, Thanksgiving)
Find todays date, subtract todays month and add HolidayMonth
(To replace todays month with the given month)
add HolidayNumOfWeeks*7
(number of days to add based on how many weeks into the given month that holiday is)
add HolidayDayOfWeek - 1
(number of days into the week it is, ie for Thanksgiving it's a 5 for Thursday)
subtract Todays date
(to get rid of the current number of days in we are)
Display this final date with the weekday, month, day, and year.
(No abbreviations for weekday and month)

Basically, I want to display the current years date for any holiday given, even the ones like Thanksgiving which have to be found with information like "the fourth Thursday in November."

 

I've got a CDS list with this information:

CDS HolidayList.png

 

(Hilariously, the CDS displays these dates as one day off from what they were imported as from Excel. This causes the new years date to not show up at all, since it's trying to display day "0" which does not exist. Yet in the powerapp the date is displayed correctly. Go figure.)

But as you can see, Thanksgiving is shown as being in month 11, and day 5 of week 4. (November, thursday of week 4.) Hopefully it makes sense to take that NumberOfWeeks variable and times it by 7 to get how many days in based on the weeks, and then add the number of days listed in the DayOfWeek variable to get how many more days in based on the weekday. 

 

I'm just trying to make this application future proof instead of feeding it exact dates every year. Please let me know if this is even possible! Thank you for any help.

 

Edit: I have come back to this question many years later and realized how underprepared for PowerApps I was at this point! I did not understand DateDiff, DateValue, Year, or even Set. For anyone else who got to this question because of syntax issues, just look up those functions here: https://learn.microsoft.com/en-us/power-platform/power-fx/formula-reference

 

  • RBoneck Profile Picture
    411 on at
    Re: Formula Syntax; If(), Text(), and DateAdd specifically

    This appears to work perfectly, except that it made me realize my if statement doesn't work. The four holidays that I never gave date inputs apparently don't count as "blank". They actually contain 1/1/1900 without my having put that in anywhere. So in trying to find a condition that separates the dateless with the dated, I am running into a problem. Is there some kind of special way to compare dates? I already changed the dated ones to use the year 1901 so as not to confuse them, but I'm still having problems.

     

    There are no errors that come up here, but apparently neither of these

     

     

    If(Not(ThisItem.HolidayDate = 1/1/1900),

    If(ThisItem.HolidayDate > 1/1/1900,

     

    distinguish between the four that are 1/1/1900 and the four that are not.

    Is there something obvious I am missing?

     

  • Verified answer
    v-micsh-msft Profile Picture
    on at
    Re: Formula Syntax; If(), Text(), and DateAdd specifically

    Hi @Boneckrh19,

     

    Please take a try with the format below:

    If( 
     Not(IsBlank(ThisItem.HolidayDate)),
     
     Text(DateAdd(ThisItem.HolidayDate, year(Today()) - 1900, Years), "[$-en-US]dddd, mmmm dd, yyyy"), 
    
     Text(DateAdd(DateAdd(Today(), HolidayMonth - Month(Today()), Months), HolidayNumOfWeeksIn*7 + HolidayDayOfWeek - 1 - Day(Today()), Days),
     "[$-en-US]dddd, mmmm dd, yyyy")
    )

    The Today() function would give a Date/Time String, we need to take use of the Year(), Month() or the Day() to get the proper single value.

    More information, see:

    Day, Month, Year, Hour, Minute, Second, and Weekday functions in PowerApps

     

    See if that will work, and post back if you have any further questions.

     

    Regards,

    Michael

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Paul Stork – Community Spotlight

We are honored to recognize Paul Stork as our July 2025 Community…

Congratulations to the June Top 10 Community Leaders!

These are the community rock stars!

Announcing the Engage with the Community forum!

This forum is your space to connect, share, and grow!

Leaderboard > Power Apps

#1
WarrenBelz Profile Picture

WarrenBelz 791 Most Valuable Professional

#2
MS.Ragavendar Profile Picture

MS.Ragavendar 410

#3
mmbr1606 Profile Picture

mmbr1606 275 Super User 2025 Season 1