Calculating Business Days in PowerApps Excluding Weekends & Holidays

Calculating Business Days in PowerApps: Excluding Weekends & Holidays

Understanding how to calculate business days, excluding weekends and public holidays, can be a vital tool for many professionals, especially in project management and HR. While tools like Microsoft Excel offer built-in functions to manage these calculations, PowerApps requires a more customized approach. This article will guide you through this process, ensuring precise date calculations tailored to your needs.

Why Exclude Weekends and Public Holidays?

Many business operations run on workdays, which usually excludes weekends and sometimes public holidays. Accurate date calculations that consider only business days can be crucial for project timelines, HR operations, and many other business scenarios.

Challenges in PowerApps Date Calculations

PowerApps does not offer out-of-the-box solutions for these specific date calculations. Hence, custom formulas are the way to go. Let’s delve into the most common scenarios you might face.

1. Calculating Business Days between Two Dates

This is often needed to determine the duration of a project or a task. Below is a custom formula that considers only the business days between two dates.

      RoundDown(DateDiff(workStartDate, workEndDate, Days) / 7, 0) * 5 +
      Mod(5 + Weekday(workEndDate) - Weekday(workStartDate), 5)

2. Factoring in Public Holidays

To ensure even more precision, it’s beneficial to exclude public holidays from your calculations. The following formula will guide you to achieve this:

      RoundDown(DateDiff(workStartDate, workEndDate, Days) / 7, 0) * 5 +
      Mod(5 + Weekday(workEndDate) - Weekday(workStartDate), 5) - 
      CountIf(holidayList, DateValue(HolidayDate) >= workStartDate, DateValue(HolidayDate) <= workEndDate)

3. Adding Business Days to a Specific Date

If you wish to determine what the date will be after adding a specific number of business days, this formula will assist:

With({ baseDate:DateValue("2021-01-18"),
       daysToInclude: 9
      DateAdd(baseDate, daysToInclude) + 
      RoundDown(daysToInclude/5, 0)*2 +
      Switch(Weekday(baseDate, StartOfWeek.Monday),
             5,If(Mod(daysToInclude, 5)>0,2,0),
             4,If(Mod(daysToInclude, 5)>1,2,0),
             3,If(Mod(daysToInclude, 5)>2,2,0),
             2,If(Mod(daysToInclude, 5)>3,2,0),
             1,If(Mod(daysToInclude, 5)>4,2,0)

4. Verification of Results

Whenever working with custom formulas, it’s prudent to verify the results. Online calculators like TimeAndDate can be beneficial for this purpose.

Final Thoughts

While PowerApps doesn’t provide built-in functions for these calculations like Microsoft Excel’s WORKDAY function, with the right formulas, you can still achieve precise results. If you believe PowerApps should simplify this process, you can vote for this feature in the PowerApps community.

If you need further assistance or any other technical help, don’t hesitate to contact us. Our team is always here to help and provide solutions tailored to your business needs.

About The Author