마감일을 데이터베이스에 적어두기만 하면 업무가 저절로 정리되지는 않습니다. 노션 수식 속성을 사용하면 오늘을 기준으로 남은 날짜, 지연 여부, 완료 상태를 한 칸에서 자동으로 보여줄 수 있어 업무 목록을 열었을 때 우선 처리할 항목이 바로 드러납니다.
이 글에서는 날짜 속성과 완료 여부를 준비하는 방법부터 마감일이 비어 있거나 오늘인 경우까지 처리하는 수식을 정리합니다. 날짜만 비교할 때와 현재 시각까지 반영할 때의 차이, 프로젝트 관리로 확장하는 기준도 함께 살펴볼게요.
노션에서 마감일 디데이를 계산하는 기본 구조
마감일 디데이 계산에는 날짜 형식의 DueDate 속성과 체크박스 형식의 Done 속성이 필요합니다. 수식 속성에서 today() 또는 now()로 기준 시점을 불러오고, dateBetween()으로 두 날짜 사이의 일수를 구하는 방식입니다.
노션 수식은 엑셀처럼 셀 주소나 범위를 참조하지 않고, 데이터베이스 속성명을 기준으로 계산합니다. 따라서 실제 날짜 속성 이름이 다르면 prop("DueDate") 부분도 동일하게 바꿔야 하며, 띄어쓰기와 대소문자까지 맞아야 합니다.
날짜만 기준으로 간단히 계산하기
하루 단위로 마감일을 관리한다면 today()가 알맞습니다. 예를 들어 마감일까지 남은 날을 숫자로 표시하는 수식은 다음과 같습니다.
dateBetween(prop("DueDate"), today(), "days")
마감일이 2026년 8월 28일이고 오늘이 2026년 8월 25일이라면 결과는 3으로 표시됩니다. 반대로 마감일이 지나면 음수로 나타나므로, 이를 사람이 읽기 쉬운 문구로 바꾸려면 조건문을 더해야 합니다.
완료와 미입력 상태까지 포함한 실전 수식
업무 상태를 한눈에 보이게 하려면 날짜 계산보다 먼저 예외 조건을 처리해야 합니다. 마감일이 없으면 안내 문구를, 완료됐다면 완료 표시를, 그 외에는 남은 날이나 지연 일수를 출력하도록 순서를 정하면 결과가 자연스럽습니다.
아래 수식은 완료 여부를 가장 먼저 판정합니다. 그래서 마감일이 이미 지났더라도 Done에 체크된 업무는 완료로 남습니다.
if(
empty(prop("DueDate")),
"마감일 미정",
if(
prop("Done"),
"완료",
ifs(
dateBetween(prop("DueDate"), today(), "days") == 0,
"오늘 마감",
dateBetween(prop("DueDate"), today(), "days") < 0,
format(abs(dateBetween(prop("DueDate"), today(), "days"))) + "일 지연",
dateBetween(prop("DueDate"), today(), "days") <= 3,
"임박 · D-" + format(dateBetween(prop("DueDate"), today(), "days")),
"D-" + format(dateBetween(prop("DueDate"), today(), "days"))
)
)
)
empty()를 앞에 둔 이유는 날짜가 비어 있을 때 날짜 차이를 계산하면 오류나 어색한 표시가 생길 수 있기 때문입니다. 남은 날이 3일 이하인 업무는 임박으로 구분해 목록에서 빠르게 찾도록 구성했습니다.
완료 상태를 뒤에서 판정하면 어떻게 달라질까요?
완료 여부를 날짜 계산 뒤에 배치하면 완료된 업무도 날짜에 따른 표현을 먼저 받을 수 있습니다. 예를 들어 기한을 넘긴 뒤 완료한 작업을 완료 · 2일 지연처럼 남기고 싶다면, 지연 일수를 별도로 계산한 뒤 완료 문구에 결합하는 방식이 적합합니다.
즉, 수식의 조건 순서는 표시 목적을 결정합니다. 완료된 항목을 단순히 숨기려면 완료 조건을 앞에 두고, 일정 준수 여부까지 기록하려면 날짜 상태를 먼저 계산하면 됩니다.
디데이 표기 방식과 현재 시각의 차이
D-3은 마감일까지 3일 남았다는 뜻으로 쓰고, 마감일이 지나면 3일 지연처럼 표시하면 혼동이 적습니다. 일부 업무표에서는 지난 날짜를 D+3으로 표현하기도 하므로, 팀에서 사용하는 의미를 한 가지로 정해두는 편이 좋습니다.
today()는 날짜 기준으로 비교하고 now()는 현재 시각을 기준으로 계산합니다. 하루 단위의 할 일 목록에는 today가 단순하며, 제출 시각이나 예약 시간처럼 시간까지 중요한 일정에는 now가 더 어울립니다.
다만 now를 사용하면 같은 날짜라도 현재 시각에 따라 계산 결과가 달라질 수 있습니다. 날짜만 관리하는 데이터베이스에서 예상과 다른 값이 보인다면 먼저 기준 함수를 확인하세요.
프로젝트 관리로 넓힐 때의 데이터베이스 구성
개인 할 일처럼 단일 데이터베이스만 사용하면 설정이 빠르고 수식도 간단합니다. 프로젝트가 많아지면 목표나 영역, 프로젝트, 태스크의 3단계로 나누고 Relation으로 연결하는 구조가 진행률과 상위 일정 관리에 유리합니다.
프로젝트에 연결된 태스크의 완료 비율을 계산한 뒤 10칸 게이지로 표시하면 전체 진행 상황을 직관적으로 볼 수 있습니다. 이때 연결된 태스크가 0개인 프로젝트는 먼저 0으로 처리해야 하며, 그렇지 않으면 나누기 계산에서 문제가 생길 수 있습니다.
수식 속성은 표시값을 자동으로 계산하는 기능입니다. 수식 결과만으로 날짜 속성이나 체크박스 속성 자체가 자동 변경되는 것은 아니므로, 실제 상태를 바꾸는 자동화가 필요하면 별도의 기능이나 작업 흐름을 함께 구성해야 합니다.
노션 수식과 엑셀 중 어떤 도구가 맞을까요?
노션 수식은 속성, 페이지, 관계형 데이터베이스를 바탕으로 업무 상태와 일정 흐름을 보여주는 데 강합니다. 반면 엑셀은 셀과 범위를 활용해 합계, 평균, 복잡한 조건 계산, 대량 데이터 분석을 처리하는 데 더 적합합니다.
따라서 마감일 표시, 우선순위 라벨, 완료 상태, 프로젝트 진행률처럼 업무 화면에서 바로 확인할 값은 노션에 맡기기 좋습니다. 피벗 테이블, 고급 통계, 매크로, 대규모 반복 계산이 중심이라면 엑셀을 선택하는 편이 효율적입니다.
마감일 디데이 자동 계산은 거창한 자동화보다 데이터베이스의 기준을 정리하는 데서 시작합니다. 날짜 속성의 이름과 빈 값 처리, 완료 조건의 순서, 날짜와 시각 중 어떤 기준을 쓸지 정하면 노션 업무 목록이 현재 상태를 훨씬 분명하게 보여줍니다.
자주 묻는 질문
노션 수식으로 마감일까지 남은 날을 계산하려면 무엇이 필요한가요?
날짜 형식의 DueDate 속성과 수식 속성이 필요합니다. dateBetween(prop("DueDate"), today(), "days")처럼 작성하면 오늘부터 마감일까지의 일수를 계산할 수 있습니다.
마감일이 비어 있을 때 오류를 막는 방법은 무엇인가요?
empty(prop("DueDate")) 조건을 먼저 넣고 마감일 미정 같은 문구를 출력하면 됩니다. 날짜가 없는 상태에서 날짜 차이를 계산하지 않도록 예외 조건을 앞에 배치하는 방식입니다.
마감일이 지난 업무를 D+로 표시할 수 있나요?
가능합니다. 날짜 차이가 음수일 때 절댓값을 사용해 D+ 숫자나 지연 일수 문구로 바꿀 수 있습니다. 글 안에서는 혼동을 줄이기 위해 3일 지연처럼 표시하는 방식을 사용했습니다.
today와 now 중 어떤 함수를 사용해야 하나요?
날짜만 비교하는 업무 목록에는 today가 적합하고, 현재 시각까지 반영해야 하는 일정에는 now를 사용할 수 있습니다. now는 시간에 따라 계산 결과가 달라질 수 있다는 점을 함께 고려해야 합니다.
노션 수식이 엑셀 수식을 그대로 대신할 수 있나요?
노션 수식은 엑셀처럼 셀 주소와 범위를 사용하는 방식이 아닙니다. 일정, 상태, 관계형 업무 관리에는 유용하지만 피벗 테이블이나 고급 통계, 매크로 같은 작업은 엑셀이 더 적합합니다.