함수 심화(1): format()과 formatDate()로 날짜/숫자 데이터 가공하기


노션 함수를 처음 접할 때 가장 당황스러운 순간은 열심히 수식을 짰는데 결과물이 20251118처럼 생 날것의 숫자로 튀어나올 때입니다. 

보기 좋은 떡이 먹기도 좋다고, 데이터도 가독성이 좋아야 활용도가 높아지는 법이죠. 오늘은 노션 함수 활용의 질을 한 단계 높여주는 포맷팅 함수 두 가지를 완벽하게 파헤쳐 보겠습니다!


수1




1. 90%가 포기하는 수식의 맹점, '텍스트 변환'

노션 좀 쓴다는 분들도 가장 많이 실수하는 부분이 바로 데이터 타입에 대한 이해 부족입니다. 수식 속성에서 텍스트와 숫자를 더하려고 하면 에러가 나거나, 숫자의 콤마(,)가 사라진 채 출력되는 경험, 한 번쯤 있으실 거예요.

저도 처음에는 자동화된 제목을 만들겠답시고 "매출액: " + prop("금액")이라는 수식을 썼다가 낭패를 본 적이 있습니다. "매출액: 1000000"이라고 뜨니 가독성이 최악이었거든요.

이 문제가 발생하는 이유는 간단합니다. 노션은 텍스트와 숫자를 물과 기름처럼 서로 다른 존재로 인식하기 때문입니다. 수식 결과창에서 원화(₩) 표시나 날짜 형식이 깨지는 건 오류가 아니라, 데이터가 가공되지 않은 원재료 상태이기 때문입니다. 그래서 우리는 이 원재료를 사람이 보기 편한 형태로 포장해 주는 기술을 익혀야 해요.



2. 숫자를 문자로 예쁘게 입히기, format()

format() 함수는 숫자를 텍스트(String) 형식으로 강제 변환해 주는 가장 기초적이면서도 중요한 함수입니다. 단순히 숫자를 문자로 바꾸는 것을 넘어, 다른 텍스트와 결합할 때 필수적으로 사용됩니다.

이 함수를 사용하지 않으면 텍스트와 숫자를 더하는 연산 자체가 불가능한 경우가 많아요. 특히 진행률이나 금액을 문장 속에 자연스럽게 녹여낼 때 아주 유용합니다.

제가 실무에서 자주 사용하는 패턴은 다음과 같습니다.


  • 기본 변환: format(prop("금액")) -> 단순히 숫자를 문자로 바꿉니다.
  • 문장 결합: "현재 달성률은 " + format(prop("달성률") * 100) + "%입니다." -> 이렇게 하면 "현재 달성률은 85%입니다."라는 깔끔한 문장이 완성됩니다.
  • 통화 표시 팁: format() 자체에는 콤마를 찍는 기능이 약하기 때문에, 저는 보통 텍스트 결합을 통해 "₩" + format(prop("금액")) 형태로 사용하곤 해요.


이렇게 가공된 데이터는 캘린더 뷰나 보드 뷰의 커버 텍스트로 활용할 때 빛을 발합니다. 클릭해서 들어가지 않아도 핵심 정보를 문장 형태로 직관적으로 확인할 수 있으니까요.


수2



3. 날짜를 내 마음대로 주무르는, formatDate()

노션 함수 중에서 제가 가장 사랑하는 함수이자, 가장 강력한 기능을 꼽으라면 단연 formatDate()입니다. 기본 날짜 속성은 2025년 11월 19일 같은 고정된 형식만 보여주지만, 이 함수를 쓰면 요일, 시간, 분기 등 원하는 모든 형태로 날짜를 쪼개고 조립할 수 있습니다.

사용법은 formatDate(날짜속성, "바꿀형식") 구조로 되어 있습니다. 여기서 "바꿀형식"에 들어가는 코드만 알면 날짜 마법사가 될 수 있어요.


제가 프로젝트 관리나 다이어리 템플릿을 만들 때 필수로 사용하는 형식 코드들을 정리해 드릴게요.


  • YY 또는 YYYY: 연도를 표시합니다. (예: 25 또는 2025)
  • MM 또는 M: 월을 표시합니다. MM은 01, 02로, M은 1, 2로 나옵니다.
  • DD 또는 D: 일을 표시합니다.
  • dddd 또는 ddd: 요일을 표시합니다. dddd는 Sunday, ddd는 Sun으로 나옵니다. 한글 요일이 필요하다면 if 함수와 결합해야 하는 불편함이 있지만, 영문 표기만으로도 충분히 세련된 느낌을 줄 수 있어요.
  • Q: 분기를 표시합니다. 분기별 목표를 관리할 때 정말 유용합니다.


이 기능이 특히 빛을 발할 때는 파일명을 자동으로 생성할 때입니다. 저는 회의록 데이터베이스에서 formatDate(prop("날짜"), "YYMMDD") + "_" + prop("안건") 수식을 사용하여 "251118_마케팅회의" 같은 깔끔한 제목을 자동으로 생성하고 있어요. 이렇게 하면 나중에 파일 정리할 때 시간을 엄청나게 아낄 수 있습니다.



4. 실전 응용: 디데이와 상태 메시지 자동화하기

이제 배운 두 함수를 섞어서 진짜 전문가처럼 보이는 응용법을 알려드릴게요. 단순히 날짜를 바꾸는 걸 넘어, 남은 기간에 따라 동적으로 변하는 상태 메시지를 만들 수 있습니다.

많은 분들이 디데이를 구할 때 단순히 dateBetween 함수만 쓰고 맙니다. 하지만 여기에 format()을 섞으면 훨씬 직관적인 대시보드를 꾸밀 수 있어요.

예를 들어 "D-" + format(dateBetween(prop("마감일"), now(), "days")) 수식을 사용해 보세요. 숫자만 덜렁 있는 것보다 "D-5", "D-10"처럼 명확한 텍스트로 보여서 업무의 긴장감이 달라집니다.

더 나아가 formatDate()와 if() 함수를 조합하면 요일에 따른 자동 루틴 관리도 가능합니다. formatDate(now(), "dddd") == "Monday" 조건을 걸어서, 월요일에만 "주간 보고서 작성"이라는 메시지가 뜨게 만들 수도 있어요. 저는 이 방법을 통해 매일 아침 노션이 저에게 오늘 해야 할 루틴을 알려주도록 세팅해 두었습니다. 별도의 알림 앱을 쓰지 않아도 노션 하나로 일정 관리가 가능해지는 비결입니다.



5. 함수 사용 시 주의할 점과 꿀팁


함수를 쓰다 보면 괄호 하나 때문에 전체 수식이 에러가 나는 경우가 정말 많습니다. 특히 format() 함수는 괄호를 닫는 위치가 매우 중요해요.

수식이 길어질 때는 메모장이나 코드 에디터에서 먼저 작성해 보고 노션에 붙여넣는 것을 추천해요. 노션의 작은 수식 창에서는 전체 구조가 한눈에 들어오지 않아서 실수를 찾기 어렵거든요. 또한, formatDate()를 쓸 때 대소문자를 정확히 구분해야 합니다. 예를 들어 대문자 M은 월(Month)이지만, 소문자 m은 분(Minute)을 의미합니다. 이 작은 차이로 전혀 엉뚱한 결과가 나올 수 있으니 꼭 주의해 주세요.

수3



함수는 처음엔 복잡해 보이지만, 한 번 제대로 세팅해 두면 평생 시간을 아껴주는 최고의 레버리지 도구입니다. 오늘 소개한 두 함수만 자유자재로 다룰 수 있어도 여러분의 노션 페이지는 단순한 메모장을 넘어 하나의 강력한 앱처럼 동작하게 될 것입니다. 지금 당장 여러분의 데이터베이스에 잠들어 있는 날짜와 숫자를 깨워보세요.






댓글