노션 수식: 날짜 범위 내 특정 요일 수 계산하는 수식 코드 활용하기

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. 최종 결과

- 다채로운 조건을 통해 최종적으로 기간 내의 특정 요일 수 계산