Jim은 매월 14/15 자정 (15 일 00:00:00)에 특정 셀의 날짜를 한 달 앞당겨 야하는데 어떻게 할 수 있는지 궁금했습니다.

Excel의 많은 문제와 마찬가지로 대답은 관련된 데이터의 특성과 정확히 수행하려는 작업에 따라 다릅니다. 셀의 날짜가 오늘 날짜이고 셀에 현재 월부터 14 일까지를 표시하고 그 다음 달 이후 다음 달을 표시하려는 경우 다음과 같은 수식을 사용할 수 있습니다.

=CHOOSE(IF(DAY(NOW())>14,MONTH(NOW())+1,MONTH(NOW())), "January","February","March","April","May","June", "July","August","September","October","November", "December","January")

이 수식은 날짜가 아닌 월의 이름을 반환합니다. 날짜를 반환하려면 다음 공식을 사용할 수 있습니다.

=IF(DAY(NOW())>14,DATEVALUE(IF(MONTH(NOW())=12,1, MONTH(NOW())+1) & "/" & DAY(NOW()) & "/" & IF(MONTH( NOW())=12,YEAR(NOW())+1,YEAR(NOW()))),NOW())

이 두 공식은 모두 12 월에서 1 월까지 진행할 때 “연말 랩 어라운드”를 설명합니다. DATEVALUE 함수 대신 DATE 함수를 사용하면이 마지막 수식의 더 짧은 버전을 만들 수 있습니다.

=DATE(YEAR(NOW()),MONTH(NOW())+((DAY(NOW())>14)*1),1)

이 수식은 DATEVALUE 예제와 달리 항상 주어진 달의 첫 번째 날인 날짜를 반환합니다.

정말로 셀에서 특정 날짜의 값을 높이려면 매크로를 사용하여 작업을 수행해야합니다. 또한 매크로가 특정 날짜의 특정 시간에 한 달에 한 번만 실행되도록해야합니다. 예를 들어 매월 15 일 00:00:00에 매크로를 실행하려면 날짜와 시간을 확인한 다음 특정 날짜와 시간에 실행되도록 매크로를 설정해야합니다. 또한 매크로가 포함 된 통합 문서가 해당 날짜와 시간에 열려 있는지 확인해야합니다.

다음 매크로는 셀에서 날짜를 가져 와서 한 달씩 늘립니다. 매크로는 업데이트 할 셀을 참조하는 명명 된 범위 인 DateCell이 있다고 가정합니다.

Sub IncreaseMonth()

Dim dDate As Date     dDate = Range("DateCell").Value     Range("DateCell").Value = _       DateSerial(Year(dDate), _       Month(dDate) + 1, Day(dDate))

End Sub

매크로가 적절한 시간에 실행되도록하려면 다른 매크로가 필요합니다. 다음 매크로는 통합 문서를 열 때마다 실행되도록 설계되었습니다.

Private Sub Workbook_Open()

If Day(Now) = 14 Then     Application.OnTime ("23:59:59"), "IncreaseMonth"

End If End Sub

이 특정 매크로는 14 일 23:59:59에 IncreaseMonth 매크로를 실행하도록 OnTime 메서드를 설정합니다. 이 날짜와 시간은 15 일 00:00:00보다 잡기 쉽기 때문에 선택되었습니다.

IncreaseMonth 매크로는 14 일에 통합 문서를 연 다음 15 일까지 통합 문서를 열어 두는 경우에만 실행됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (2180)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excelribbon-Automatically_Advancing_by_a_Month [Automatically Advancing by a Month].