본문 바로가기
카테고리 없음

스프레드시트 태스크 트래커 만들기(1)- 만년 달력 자동화

by 도프리 2026. 3. 25.
반응형

총 3편에 걸쳐, 구글 스프레드시트로 태스크 트래커를 만든 과정을 기록해보려합니다.

셀프 스터디 기록이라 부족한 부분이 있을 수 있지만, 비슷한 고민을 하신 분들께 조금이라도 도움이 됐으면 합니다.

 

1. 만들게 된 배경

기존에 공유되는 템플릿들도 여러 개 써봤지만, 딱 제가 원하는 방식대로 동작하는 건 찾기 어려웠습니다.

그래서 그동안 참고해 왔던 간트차트나 다양한 스케줄 시트의 레이아웃을 바탕으로, 필요한 기능을 직접 조합해서 만들어 보기로 했습니다. 제 시트의 핵심은 "연도와 월만 바꾸면 날짜와 요일이 자동으로 기재되고, 시작 요일과 주말 포함 여부까지 선택 가능"한 부분입니다.

 

▼ 아래는 여러 템플릿을 참고하면서 제 용도에 맞게 수식과 구조를 새로 만든 최종 결과물입니다. 

태스크 트래커- 완성본

 

2. 레이아웃 설정

레이아웃 설정

 

시트 상단에 설정 영역 4개를 배치합니다. 그럼 이후 모든 수식들은 이 값을 참조합니다.

항목 예시 설명
B2 연도 2026 드롭다운 또는 직접입력
D2 4 1~12 중 선택 
B3 시작일기준 1일 '1일' / '월요일' / '일요일' 선택
D3 주말 포함 여부 포함 '포함'/ '제외'

 

날짜는 E3 셀부터 오른쪽(가로)으로 최대 37칸까지 나열합니다.

시작 요일이 일요일인데 해당 월 1일이 토요일이면 전월 날짜가 최대 6일 들어가고, 본월 31일까지 합산하면 37칸이 필요합니다.  

 

3. E3 수식 시작 날짜 역산

시작날짜 수식 넣기

E3 셀은 시작일 기준에 따라 다른 날짜를 반환합니다. IFS 함수로 분기 처리했습니다.

=IFS(
  $B$3="1일",  DATE($B$2, $D$2, 1),

  $B$3="월요일",
    DATE($B$2, $D$2, 1)
    - WEEKDAY(DATE($B$2, $D$2, 1), 3),

  $B$3="일요일",
    DATE($B$2, $D$2, 1)
    - WEEKDAY(DATE($B$2, $D$2, 1), 1) + 1
)

 

각 조건별로 정리하면 아래와 같습니다.

"1일" 해당 월 1일을 그대로 반환합니다.
"월요일" WEEKDAY( ,3)은 월=0, 화=1, ..., 일=6을 반환합니다. 1일에서 이 값을 빼면 직전 월요일이 됩니다.
"일요일" WEEKDAY( ,1)은 일=1, 월=2, ..., 토=7을 반환합니다. 1일에서 이 값을 빼고 1을 더하면 직전 일요일이 됩니다.

 

WEEKDAY의 두 번째 인수(return_type)를 바꾸면 요일 번호 체계가 달라지는데, 이걸 이용해서 "직전 ○요일"을 역산하는 구조입니다.

 

4. F3 이후 수식- 월말 자동 끊기

F3수식 삽입

 

F3부터는 왼쪽 셀에 +1씩 더하되, 해당 월의 마지막 날을 넘으면 빈 칸을 반환합니다.

=IF(
  AND(E3 <> "", E3 < EOMONTH(DATE($B$2,$D$2,1), 0)),
  E3 + 1,
  ""
)

 

위 수식 구조를 분석해보면 아래와 같습니다.

    • E3 <> "" — 왼쪽 칸이 비어 있으면 나도 빈 칸
    • EOMONTH(DATE($B$2,$D$2,1), 0) — 해당 월 마지막 날짜
    • 왼쪽 값이 월말보다 작을 때만 +1, 아니면 빈 문자열

이 수식을 F3에 넣고 AL3까지 "드래그"하거나 "복사"하면 됩니다.

EX) 4월이면 30일까지, 2월이면 28일(윤년 29일)까지만 채워지고 나머지는 빈 칸으로 남습니다.

 

5. 마무리

이번 편에서는 연도/월/시작일 기준만 바꾸면 날짜가 자동으로 변경되는 뼈대를 만들어보았습니다.

다음 편에서는 조건부 서식을 활용해서 주말은 회색으로, 전월 날짜는 연하게 처리하는 시각화 작업을 해보려합니다.

 

다음편 : 스프레드시트 태스크 트래커 만들기(2) - 조건부 서식으로 시각화

반응형

댓글