노션 수식

[노션 수식] 노션 날짜 필터, 지난주 구간(일요일~토요일)을 구하는 수식

데이지(Daisy) 2025. 6. 22. 01:44

노션의 기본 날짜 필터 중 "지난 1주" 조건은 '오늘 기준으로 7일 전까지'의 데이터를 보여주기 때문에  
우리가 흔히 말하는 "지난주 일요일부터 토요일까지"의 정확한 구간과는 다를 수 있어요.

그래서 저는 이번에 '딱 지난주'의 날짜만 필터링할 수 있는 수식을 만들어봤고,  
그 과정을 간단하게 정리해서 공유하려고 합니다 :)

 


 

 

⚙️ 원리

핵심은

기준 날짜에서 -1주 차의 주차와
검사 대상 날짜의 주차가 같은지 비교하는 방식이에요.

 

formatDate("날짜", "YYYY-ww")를 이용해 주차를 비교하고,
필요한 경우 연도까지 보정해서 정확한 비교가 가능하게 만들어요.

 

if문을 이용하여 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")

왼) formatDate( 날짜 , "YYYY-ww") 오) formatDate(dateSubtract( 날짜 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인 데이터만 필터링하면 정확히 지난주의 데이터만 깔끔하게 조회할 수 있어요.

 

 

 

노션에서 단순한 날짜 필터만으로는 구현하기 어려운 부분들이 있어요.
특히 주차별 통계나 주간 리포트를 만들 때, 이런 수식이 있으면 훨씬 정확하게 데이터를 다룰 수 있답니다!