주휴수당을 자동으로 계산하는 급여 시트 만들기 — 제일 어려웠던 건 '한 주 묶기'
여러 매장에서 알바 급여를 챙기다 보니, 주휴수당 계산이 매번 손이 가서 엑셀 시트로 자동화했어요. 시급 곱하기는 쉬운데 의외로 까다로운 건 '근무 기록을 주 단위로 묶는 것'과 '한 사람이 두 매장에서 일한 시간을 합치는 것'이었어요. 수식으로 어떻게 풀었는지 적어둡니다.
title: "주휴수당을 자동으로 계산하는 급여 시트 만들기 — 제일 어려웠던 건 '한 주 묶기'" date: "2026-06-26" description: "여러 매장에서 알바 급여를 챙기다 보니, 주휴수당 계산이 매번 손이 가서 엑셀 시트로 자동화했어요. 시급 곱하기는 쉬운데 의외로 까다로운 건 '근무 기록을 주 단위로 묶는 것'과 '한 사람이 두 매장에서 일한 시간을 합치는 것'이었어요. 수식으로 어떻게 풀었는지 적어둡니다." tags: ["dev", "excel", "급여", "자영업"] category: "dev"
제가 일하는 곳은 매장이 한 곳이 아니라서, 알바 급여를 챙길 때 신경 쓸 게 좀 많아요. 그중에서도 매달 손이 제일 많이 가던 게 주휴수당이었어요. 시급에 시간 곱하는 건 금방인데, 주휴수당은 "그 주에 15시간을 넘겼나"를 주마다 따져야 하거든요.
사람이 여럿이고 주마다 근무시간이 다 다르니까, 손으로 하면 시간도 걸리고 한 번씩 틀려요. 그래서 출퇴근 시간만 넣으면 주휴수당까지 자동으로 나오는 엑셀 시트를 만들었어요. 오늘은 그 안에서 제일 까다로웠던 두 가지를 어떻게 풀었는지 적어둘게요.
"근무 기록은 그냥 날짜별로 쌓이는데, 이걸 어떻게 '주 단위'로 묶어서 15시간을 따지지?"
먼저, 하루 근무시간
이건 쉬운 편이에요. 출근·퇴근 시간만 받으면 빼면 되니까요. 다만 자정을 넘기는 야간 근무(예: 18:00 → 02:00)가 있어서, 퇴근이 출근보다 작으면 하루를 더해줬어요.
근무시간 = (퇴근 - 출근 + IF(퇴근 < 출근, 1, 0)) * 24
엑셀은 시간을 "하루=1"인 소수로 들고 있어서, 마지막에 24를 곱해 시간 단위로 바꿔줬어요.
진짜 문제 — 흩어진 기록을 '한 주'로 묶기
주휴수당은 "그 주에 15시간 이상"이 조건이라, 날짜별로 쌓인 근무 기록을 주 단위로 묶어야 해요. 그런데 행마다 날짜만 덜렁 있지, "이게 몇 째 주다" 같은 표시는 없잖아요.
그래서 각 근무 행에 그 주의 월요일 날짜를 자동으로 붙였어요. 같은 주에 일한 기록은 전부 같은 월요일 값을 갖게 되니까, 그걸 묶음 키로 쓰는 거예요.
주시작(월요일) = 날짜 - WEEKDAY(날짜, 2) + 1
WEEKDAY(날짜, 2)는 월요일을 1, 일요일을 7로 돌려줘요. 그러니 날짜에서 그만큼
빼고 1을 더하면 항상 그 주 월요일로 정렬돼요. 6월 3일(수)이든 6월 5일(금)이든
같은 주면 똑같이 "6월 1일(월)"이 나오는 거죠.
이제 이 월요일 값을 기준으로 그 주 근무시간을 다 더해요.
그_주_근무시간 = SUMIFS(근무시간, 직원명, 김민지, 주시작, 그주월요일)
다매장 합산은… 사실 거저 따라왔어요
처음엔 "한 사람이 두 매장에서 일한 시간을 합치는 걸 따로 처리해야 하나" 걱정했는데,
위의 SUMIFS를 보면 조건이 직원명과 주(week)뿐이에요. 매장은 조건에 안 넣었어요.
그래서 김민지님이 같은 주에 1호점에서 12시간, 2호점에서 6시간을 일했어도, 직원명과 주가 같으니 그냥 18시간으로 합쳐져요. 다매장 합산을 위해 뭘 더 한 게 아니라, "매장으로 안 나누고 사람·주로만 묶었더니" 자동으로 합쳐진 거예요. 이 부분이 은근히 기분 좋았어요.

마지막, 주휴시간과 주휴수당
이제 그 주 근무시간만 있으면 주휴는 한 줄이에요.
주휴시간 = IF(그_주_근무시간 >= 15, MIN(그_주_근무시간 / 40, 1) * 8, 0)
15시간 미만이면 0, 넘으면 (주시간/40)×8을 주되 최대 8시간까지만. MIN(…, 1)이
8시간을 넘지 않게 막아주는 안전장치예요. 이걸 그 사람의 모든 주에 대해 더하고 시급을
곱하면 그 달 주휴수당이 돼요.
주휴수당 = SUM(주별 주휴시간) * 시급

남는 생각
만들기 전엔 주휴수당 계산이 복잡한 줄 알았는데, 막상 핵심은 "근무 기록을 어떻게 주 단위로 묶느냐" 한 곳에 있었어요. 그 묶는 키(주 월요일)만 잘 잡아두니까, 15시간 판정도 다매장 합산도 전부 그 위에서 자연스럽게 풀리더라고요.
복잡해 보이는 문제가 사실은 "데이터를 어떤 단위로 묶을까" 하나로 정리되는 경우가 많은 것 같아요. 이번 시트가 딱 그랬어요.