Normal Days to business days

  • Thread starter Thread starter Philipp Oberleitner
  • Start date Start date
P

Philipp Oberleitner

Can i somehow calculate with excel the normal days to business days. f.e if
i have a Now() - 23.4.2004 i want to have the number of days lying in this
period without Sundays/Saturdays.

Thanks alot
 
Hi Philipp!

Where earliest date is in A1

=NETWORKDAYS(A1,NOW(),HolidaysRange)

NETWORKDAYS is an Analysis ToolPak function so Analysis ToolPak needs
to be installed and selected as an Addin.

The HolidaysRange argument is optional but will exclude dates in
HolidaysRange that are between your dates.
 
Can i embedd this in a macro and is there a possibility to do it without an
addin ?
 
Hi Philipp!

You can't use it in VBA unless you have selected Analysis ToolPak -
VBA

Then you need to either refer to that Addin in your code or reference
the Addin.

But this can cause problems with running your workbook on another
setup, which is one reason why we tend to avoid Analysis ToolPak
functions.

One workbook formula for avoiding Analysis ToolPak is:

=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(BeginDate&":"&EndDate)),2)<=5),1-COUNTIF(Holidays,ROW(INDIRECT(BeginDate&":"&EndDate))))


Now how you do that in VBA, when I'm about to go to bed.... I'm sure
someone on this group has done this before and will post a ready made.
 
Hi Philipp,

You can build your own little VBA function and use it either in your spreadsheet
directly or invoked in a macro.

For an example in a macro:
nWkDays = NWD(DateSerial(2004,4,23), Date)

Function NWD(ByVal Start As Date, ByVal Finish As Date) As Long
Dim Tot As Long, nSat As Long, nSun As Long

Tot = 1 + Finish - Start
nSat = Int((Finish - Weekday(Finish - 6) - Start + 8) / 7)
nSun = Int((Finish - Weekday(Finish) - Start + 8) / 7)

NWD = Tot - nSat - nSun

End Function

Advise if you need the Holidays parameter.

Regards,

Daniel M.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top