노션의 기본 날짜 필터 중 "지난 1주" 조건은 '오늘 기준으로 7일 전까지'의 데이터를 보여주기 때문에
우리가 흔히 말하는 "지난주 일요일부터 토요일까지"의 정확한 구간과는 다를 수 있어요.
그래서 저는 이번에 '딱 지난주'의 날짜만 필터링할 수 있는 수식을 만들어봤고,
그 과정을 간단하게 정리해서 공유하려고 합니다 :)
⚙️ 원리
핵심은
기준 날짜에서 -1주 차의 주차와
검사 대상 날짜의 주차가 같은지 비교하는 방식이에요.
formatDate("날짜", "YYYY-ww")를 이용해 주차를 비교하고,
필요한 경우 연도까지 보정해서 정확한 비교가 가능하게 만들어요.
if문을 이용하여 두 날짜의 formatDate("날짜", "YYYY-ww")가 같은지 확인하는 수식 속성을 만들고, 필터를 걸어 데이터를 조회하면 지난 주 구간을 값을 얻을 수 있습니다.
⚠️ 예외 상황: 연도가 바뀌는 주차
단순히 주차만 비교하면
12월 말 ↔ 1월 초 경계에서 오류가 발생합니다.
예:
- 지난주: 2025년 12월 30일
- 기준일: 2026년 1월 9일
formatDate("2025-12-30", "YYYY-ww") → "2025-01"
dateSubtract("2026-01-09", 1, "weeks") → "2026-01"
둘 다 실제로는 같은 주차지만, 연도가 달라서 비교가 안 되는 문제가 생기죠.
formatDate(prop("날짜"), "YYYY") + formatDate(prop("날짜"), "-ww")
== formatDate(dateSubtract(prop("날짜 1"), 1, "weeks"), "YYYY-ww")
✅ 해결 방법
1. 검사 대상 날짜가 12월이고, 주차가 01이면 → 연도를 +1
- 지난주 : 2025년 12월 30일
- 기준일 : 2026년 1월 9일
formatDate(prop("지난주"), "YYYY-ww") → 2025-01
formatDate(dateSubtract(prop("기준일"), 1, "weeks"), "YYYY-ww") → 2026-01
지난 주 연도 값에 1을 더해주고 아래 수식으로 날짜를 합쳐서 기준이 되는 날짜와 비교.
formatDate(dateAdd(prop("지난주"), 1, "years"), "YYYY") + formatDate(prop("지난주", "-ww")
= "2026" + "-01"
>> 지난주 값이 2026-01로 치환되어 정상적으로 체크할 수 있음
2. 기준일 -1주차의 연도와 주차 조합 만들기
- 지난주 : 2025년 1월 2일
- 기준일 : 2026년 1월 6일
formatDate(prop("지난주"), "YYYY-ww") → 2026-01
formatDate(dateSubtract(prop("기준일"), 1, "weeks"), "YYYY-ww") → 2025-01
기준일 연도는 그대로, 주차만 -1주차값을 가지고와 아래 수식으로 날짜를 합쳐서 기준이 되는 날짜와 비교.
formatDate(now(), "YYYY") + formatDate(dateSubtract(now(), 1, "weeks"), "-ww"),
= "2026" + "-01"
>> 기준일 값이 2026-01로 치환되어 정상적으로 체크할 수 있음
✅ 최종 수식 및 결과
if(
and(
formatDate(prop("날짜"), "MM") == "12",
formatDate(prop("날짜"), "ww") == "01"
),
formatDate(dateAdd(prop("날짜"), 1, "years"), "YYYY") + formatDate(prop("날짜"), "-ww"),
formatDate(prop("날짜"), "YYYY") + formatDate(prop("날짜"), "-ww")
) == if(
and(
formatDate(dateSubtract(now(), 1, "weeks"), "YYYY") != formatDate(now(), "YYYY"),
formatDate(dateSubtract(now(), 1, "weeks"), "ww") == "01"
),
formatDate(now(), "YYYY") + formatDate(dateSubtract(now(), 1, "weeks"), "-ww"),
formatDate(dateSubtract(now(), 1, "weeks"), "YYYY-ww")
)
이렇게 수식 속성을 만들고,
해당 속성이 true인 데이터만 필터링하면 정확히 지난주의 데이터만 깔끔하게 조회할 수 있어요.
노션에서 단순한 날짜 필터만으로는 구현하기 어려운 부분들이 있어요.
특히 주차별 통계나 주간 리포트를 만들 때, 이런 수식이 있으면 훨씬 정확하게 데이터를 다룰 수 있답니다!