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-1
find下一个“工作日”,其中“0000000”定义所有日子为工作日(A1:A20中列出的假日除外),可以是D1本身,也可以是下一个非假期那
最简单的方法是编写一个VBA函数。
脚步:
1:命名节假日的范围。 通过select假日列并在名称框中input“假日”来完成此操作。
2:按alt + F11显示VBA编辑器
3:在VBA中:插入>模块
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)