노션 수식: 날짜 범위 내 특정 요일 수 계산하는 수식 코드 활용하기
24. 11. 26.
요즘 프로젝트 관리하다 보니까 주어진 날짜 범위 내에서 특정 요일의 수를 계산해야 하는 일이 생겼어요. 예를 들어, 주어진 날짜 속성에서 월요일과 일요일이 몇 번 나오는지 알고 싶어졌는데, 노션에서 수식으로 해결할 방법이 있을까요?
주어진 날짜 범위에서 특정 요일의 수를 계산하려면 아래의 노션 수식 코드를 사용하면 됩니다. 요일에 따라 값을 조정할 수 있어요! 아래 코드를 따라 해보세요!
수식 코드
lets(
a, "0123456",
d_01, prop("날짜").dateStart().day() % 7,
d_02, prop("날짜").dateEnd().day() % 7,
period, dateBetween(prop("날짜").dateEnd(), prop("날짜").dateStart(), "days") + 1,
cycle, ((period - (7 - d_01)) / 7).floor(),
cons_01, a.substring(d_01, d_02 + 1),
cons_02, a.substring(d_01) + a.substring(0, d_02 + 1),
cons_03, a.substring(d_01) + a.repeat(cycle) + if(d_02 != 6, a.substring(0, d_02 + 1), ""),
output,
ifs(period == 1, if(test(d_01.format(), "0|6"), 0, 1),
cycle == -1 and d_02 > d_01, cons_01,
cycle == -1 and d_02 < d_01, cons_02,
cons_03
),
period - output.match("0").length() - output.match("6").length()
)
간략한 설명
노션 수식 코드 설명
1. 변수 선언
- `lets`: 변수를 선언하고 값을 할당
- `a`: 문자열 "0123456"
- `d_01`: 시작 날짜의 요일
- `d_02`: 종료 날짜의 요일
- `period`: 날짜 기간 (시작일 포함)
- `cycle`: 주 사이클 수
- `cons_01`, `cons_02`, `cons_03`: 특정 문자열 추출
2. 출력 계산
- `output`: 다양한 조건을 판단하여 결과 값 생성
- 기간이 1일일 때
- 사이클이 -1일 때
- 주기를 고려한 문자열 결합
3. 최종 결과
- 다채로운 조건을 통해 최종적으로 기간 내의 특정 요일 수 계산