Excel – 查找不在列表中的第二天

我有一个date(学校假期)按时间顺序列表。 我想给它一个date,并有公式返回第二天不在列表中。

这是我的date列表:

January 1 January 2 January 3 January 28 February 11 February 15 etc 

1月1日应该在1月4日27日返回,另一方面应该在1月27日归还(因为不在名单上)1月28日应该返回1月29日等

我看了看,但似乎无法find任何与此有关的东西。 我需要在VBA中做些什么吗? 还是有更简单的方法使用function?

谢谢! 担

你使用的是哪个版本的Excel? 在Excel 2010或更高版本中,可以使用WORKDAY.INTL函数,例如, A1:A20假期date和D1参考date

=WORKDAY.INTL(D1-1,1,"0000000",$A$1:$A$20)

D1-1find下一个“工作日”,其中“0000000”定义所有日子为工作日(A1:A20中列出的假日除外),可以是D1本身,也可以是下一个非假期那

最简单的方法是编写一个VBA函数。

脚步:

1:命名节假日的范围。 通过select假日列并在名称框中input“假日”来完成此操作。

Excel名称框

2:按alt + F11显示VBA编辑器

3:在VBA中:插入>模块

Excel插入模块

4:input此代码

 Option Explicit Public Function NextSchoolDay(StartDate As Date) Dim Holidays As Range Set Holidays = Range("Holidays") NextSchoolDay = StartDate Do NextSchoolDay = NextSchoolDay + 1 Loop Until Not IsNumeric(Application.Match(CLng(NextSchoolDay), Holidays, 0)) End Function 

5:现在可以使用公式= NextSchoolDay(Date)

Excel NextSchoolDay公式