2014-01-17 2 views
0

나는 연대순으로 날짜 목록 (학교 휴일)을 가지고 있습니다. 나는 그것에게 날짜를주고 싶습니다, 그리고 그 공식이 그 다음날에 목록에없는 것을 돌려 보내고 싶습니다.Excel - 목록에없는 다음 날 찾기

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

1월 1 월 반환해야 1월 27 조 (이 목록에없는 때문에) 1월 (28) 반환해야, 다른 한편으로는 1월 4일 1월 (27) 반환해야합니다 :

이 날짜의 내 목록입니다 29 등

나는 보았지만 보았지만 이것과 관련된 것을 찾을 수 없다. VBA에서 뭔가해야합니까? 아니면 그냥 함수를 사용하는 쉬운 방법이 있습니까?

감사합니다. 단

답변

2

의 Excel 버전을 사용하고 있습니까? Excel 2010 이상 버전에서는 WORKDAY.INTL 함수를 사용할 수 있습니다. A1:A20의 휴일 날짜와 "0000000"(일 모든 일을 정의와 D1

그 이후 다음 "작업 일" D1-1를 사용하고 발견

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

에서 참조 날짜가 휴일이 나열 제외 A1 : A20), D1 자체 또는 그 다음 비휴 일일 수 있습니다.

+0

흥미 롭습니다. 이전에 그 기능을 살펴 봤는데 정상 근무일 (0000000) 부분을 정의하는 것 외에 다른 일을 정의 할 수 있다는 것을 깨닫지 못했습니다. 큰! 귀하의 답변 주셔서 감사합니다! – user3206333

0

가장 쉬운 방법은 VBA 함수를 작성하는 것입니다.

단계 :

1 : 휴일의 범위를 이름을 지정합니다. 휴일 열을 선택하고 이름 상자에 "휴일"을 입력하여이를 수행하십시오.

Excel Name Box

2 : VBA에서 : 삽입> 모듈

Excel Insert Module

4 : ALT + F11

3를 눌러 VBA 편집기를 표시이 코드

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 (일)

Excel NextSchoolDay Formula

+0

환상적인 답변/자습서입니다. 정말 고마워! 다른 대답은 조금 더 단순 해 보이지만,이 대답은 미래의 응용 분야에서 흥미로운 방향으로 확장됩니다. 에드워드, 정말 고마워! – user3206333

+0

다른 답변은 이것에 대한 더 나은 해결책입니다 - 나는 "근무일"기능에 대해 몰랐습니다. 그 중 하나를 정답으로 표시해야합니다. – Edward

+0

감사합니다. 이것은 stackoverflow를 처음 사용하는 것입니다. 둘 다 정말 도움이되었습니다. 나는 내가 당신에게 다른 사람들을 돕기 위해 제한된 지식을 사용해야 할 것 같아요. 다시 한 번 감사드립니다! – user3206333