2026-09-07
파일 - 옵션 - 수식 - 반복 계산 사용에 체크합니다. 최대 반복 횟수 100, 변화 한도 0.001로 두시면 됩니다.
C3에 넣을 수식입니다.
=IF(B3=TRUE, IF(C3="", TODAY(), C3), "")
C3이 자기 자신을 참조합니다. 원래는 순환 참조 오류가 나지만 반복 계산을 켜면 허용됩니다. 안쪽 IF가 "C3이 비어 있을 때만 오늘 날짜를 쓰고, 이미 값이 있으면 그 값을 그대로 유지하라"는 뜻이라 한 번 박힌 날짜가 다음 계산 때 덮이지 않습니다.
함정 두 가지입니다. 반복 계산은 시트가 아니라 엑셀 전체에 적용되는 설정입니다. 켜 두면 다른 시트에서 실수로 만든 순환 참조가 경고 없이 조용히 이상한 값을 냅니다. 정산표처럼 합계가 여러 겹으로 걸린 파일에서는 어느 셀이 틀렸는지 찾기가 매우 어려워집니다. 그리고 이 수식이 든 셀을 다른 위치로 복사하면 자기 참조 대상이 원본 셀로 남거나 엉뚱한 셀을 가리킵니다. 행을 늘릴 때는 복사 대신 아래로 채우기를 쓰시고, 채운 뒤 몇 개 셀을 눌러 참조가 자기 행을 보는지 확인하십시오.
시트 탭 우클릭 - 코드 보기에 붙여넣습니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, c As Range
Set rng = Intersect(Target, Me.Range("B3:B1000"))
If rng Is Nothing Then Exit Sub
On Error GoTo 복구
Application.EnableEvents = False
For Each c In rng
If c.Value = True Then
c.Offset(0, 1).Value = Date
c.Offset(0, 1).NumberFormat = "yyyy-mm-dd"
Else
c.Offset(0, 1).ClearContents
End If
Next c
복구:
Application.EnableEvents = True
If Err.Number <> 0 Then MsgBox "날짜 기록 실패: " & Err.Description
End Sub
On Error GoTo 복구 부분을 빼면 안 됩니다. 코드 중간에서 오류가 나면 Application.EnableEvents가 False인 채로 남고, 그 뒤로는 이 시트의 모든 변경 이벤트가 죽습니다. 체크를 눌러도 아무 일이 안 일어나는데 코드는 멀쩡해 보이는 상태가 됩니다. 이미 그렇게 되셨다면 VBA 편집기의 즉시 실행 창에 Application.EnableEvents = True를 입력하고 엔터를 누르시면 살아납니다.
함정입니다. 개발도구 - 삽입에 있는 양식 컨트롤 체크박스는 셀 위에 떠 있는 그림이라 클릭해도 Change 이벤트가 발생하지 않습니다. 이 코드가 안 먹습니다. 마이크로소프트 365의 삽입 - 확인란처럼 셀 안에 들어가는 것일 때만 동작합니다. 양식 컨트롤이시면 컨트롤 서식에서 셀 연결을 B3으로 잡은 뒤 방법 1을 쓰십시오. 그리고 파일은 반드시 .xlsm으로 저장해야 합니다. .xlsx로 저장하면 경고 한 번 뜨고 코드가 통째로 사라집니다.
C3:E3을 선택하고 홈 - 조건부 서식 - 새 규칙 - 수식을 사용하여 서식을 지정할 셀 결정을 고릅니다.
=$B3=TRUE
B 앞에만 달러를 붙이는 게 핵심입니다. 열은 고정하고 행은 따라가게 해야 각 행이 자기 행의 B열을 봅니다.
여기서 걸리는 게 셋입니다. 규칙을 만들 때 선택 영역의 활성 셀(혼자 흰색인 셀)이 C3이 아니면 참조가 한 칸씩 밀려 엉뚱한 행이 칠해집니다. 만든 뒤 조건부 서식 규칙 관리에서 적용 대상이 =$C$3:$E$3 인지 확인하십시오. 둘째, 반대 조건을 =$B3=FALSE로 만들면 아직 손대지 않은 빈 칸까지 FALSE로 잡혀 표 전체가 칠해집니다. =AND($B3<>"", $B3=FALSE) 로 쓰셔야 합니다. 셋째, 행을 자주 삽입하고 삭제하는 표라면 적용 대상이 =$C$3:$E$5,$C$9:$E$14 처럼 조각조각 갈라집니다. 갈라지면 사이 행이 규칙에서 빠지고 파일도 무거워집니다. 가끔 규칙 관리를 열어 적용 대상을 하나의 범위로 다시 써 주십시오.
파일을 다른 사람에게 넘겨야 한다면 방법 1이 마찰이 적습니다. 매크로가 든 파일은 받는 쪽에서 콘텐츠 사용 버튼을 눌러야 하고, 메일이나 사내 정책에 따라 아예 차단되기도 합니다. 반대로 혼자 쓰는 관리표라면 방법 2가 낫습니다. 값이 진짜로 박히기 때문에 나중에 정렬하거나 다른 파일로 복사해도 날짜가 따라옵니다.
막히시면 쓰고 계신 엑셀 버전과 B열 체크박스가 셀 안에 들어간 것인지 셀 위에 떠 있는 것인지를 알려 주십시오. 이 둘에 따라 답이 갈립니다.
지금 그 파일, 어디가 문제인지 먼저 보시겠습니까
CSV 를 넣으면 계산이 틀어지는 자리를 찾아 드립니다. 무료이고 파일은 서버로 올라가지 않습니다 — 브라우저 안에서만 처리되고 저희도 내용을 볼 수 없습니다.
매달 같은 순서로 고치고 계신다면 그 순서를 프로그램으로 옮겨둔 것이 있습니다 — 쇼핑몰 월 정산 자동화. 되는지부터 보시려면 무료 진단.