수식 구문과 함수

수식 함수 메인
이 글에서는

Notion 수식에서는 다양한 속성과 함수를 사용할 수 있습니다. 아래에서 자세히 설명해 드릴게요 ➗


수식에 대한 기본적인 내용을 배우고 싶으신가요? Notion의 수식 가이드를 확인해 보세요.

Notion 수식에는 다양한 속성과 함수를 지원할 수 있습니다. 아래에서 자세히 설명해 드릴게요.

Notion 함수는 여러 유형의 속성을 지원합니다. 직접 지원되지 않는 속성의 경우, 데이터가 다른 데이터 유형으로 자동 전환됩니다(대개 텍스트로 전환).

속성 유형

예시

수식 유형

제목

prop("Title")prop("Title").length()

텍스트

텍스트

prop("Text")prop("Text").length()

텍스트

선택

prop("Priority") == "High"

텍스트

다중 선택

prop("Tags").length()prop("Tags").includes("Finance")

텍스트

체크박스

prop("Checkbox")
not prop("Checkbox")

부울

이메일, URL, 전화번호

!empty(prop("Phone"))
!empty(prop("Email"))
link("Call", "tel:" + prop("Phone"))

텍스트

고유 ID

prop("Task ID").split("-").first() ← Prefix
prop("Task ID").split("-").last() ← ID

텍스트

생성자,
편집자

prop("Created By").name()
prop("Created By").email()

사용자

사용자

prop("Person")
prop("Person").at(0).name()
prop("Person").map(current.email())

사용자

날짜,
생성 일시,
최종 편집 일시

prop("Due Date") > now()dateBetween(prop("Birthday"), now(), "days")

날짜

숫자

prop("Number") / 2pi() *
prop("Radius") ^ 2

숫자

관계형

prop("Tasks").length()
prop("Tasks").filter(current.prop("Status") !== "Done")

페이지

롤업

prop("Purchases").length()prop("Average cost") * 12

숫자, 날짜 또는 리스트(유형 무관). 롤업에 따라 달라짐.

빌트인은 계산을 표기하는 데 도움이 되도록 언어에 기본 제공되는 특정 기호와 값입니다.

빌트인

예시

수학 연산자:+, -, *, %

2 * pi()"hello" + "world"

부울 값:
true, false

truefalse

비교 연산자:
==, >, >=, <, <=

123 == 123 = true"Notion" == "Motion" = false

논리 연산자:
and, or, not

and:
true and false
true && false
and(true, false)
or:
true or false
true || false
or(true, false)
not:
not true
!true

삼항 연산자:
? :

X ? Y : Zif(X, Y, Z)와 같음

Notion 수식에서는 아래와 같은 함수를 지원합니다.

이름

설명

예시

if

조건이 TRUE이면 첫 번째 값을 반환하고 FALSE이면 두 번째 값을 반환합니다.

if(true, 1, 2) = 1if(false, 1, 2) = 2prop("Checked") == true ? "Complete" : "Incomplete"

ifs

첫 번째 TRUE 조건에 해당하는 값을 반환합니다. 여러 개의 중첩된 if() 문 대신 사용할 수 있습니다.

ifs(true, 1, true, 2, 3) = 1ifs(false, 1, false, 2, 3) = 3

empty

값이 비어 있으면 TRUE를 반환합니다. 0, “”, [] 기호는 비어 있는 것으로 간주합니다.

empty(0) = trueempty([]) = true

length

텍스트 또는 리스트 값의 길이를 반환합니다.

length("hello") = 5length([1, 2, 3]) = 3

substring

시작 색인(포함)부터 끝 색인(선택적, 제외)까지 텍스트에서 하위 문자열을 반환합니다.

substring("Notion", 0, 3) = "Not"substring("Notion", 3) = "ion"

contains

값에 검색 문자열이 있으면 TRUE를 반환합니다.

contains("Notion", "ot") = true

test

값이 정규식과 일치하면 TRUE를, 일치하지 않으면 FALSE를 반환합니다.

test("Notion", "Not") = truetest("Notion", "\\d") = false

match

정규식의 모든 일치 항목을 리스트로 반환합니다.

match("Notion Notion", "Not") = ["Not", "Not"]match("Notion 123 Notion 456", "\\d+") = ["123", "456"]

replace

정규식의 첫 번째 일치 항목을 대체할 값으로 바꿉니다.

replace("Notion Notion", "N", "M") = "Motion Notion"

replaceAll

정규식의 모든 일치 항목을 대체할 값으로 바꿉니다.

replaceAll("Notion Notion", "N", "M") = "Motion Motion"replaceAll("Notion 123", "\\d", "") = "Notion"

lower

텍스트를 소문자로 변환합니다.

lower("NOTION") = "notion"

upper

텍스트를 대문자로 변환합니다.

upper("notion") = "NOTION"

repeat

주어진 횟수만큼 텍스트를 반복합니다.

repeat("0", 4) = "0000"repeat("~=", 10) = "~=~=~=~=~=~=~=~=~=~="

link

레이블 텍스트와 URL에서 하이퍼링크를 만듭니다.

link("Notion", "https://notion.so") = "Notion"

style

텍스트에 스타일과 색상을 추가합니다. 유효한 서식 스타일: "b"(굵게), "u"(밑줄), "i"(기울임꼴), "c"(코드), "s"(취소선). 유효한 색상: "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink", "red". 배경색을 설정하려면 색상에 "cbackground"를 추가하세요.

style("Notion", "b", "u") = "Notion"style("Notion", "blue", "gray_background")

unstyle

텍스트에서 서식 스타일을 제거합니다. 특정 스타일을 지정하지 않으면 모든 스타일이 제거됩니다.

unstyle("Text")unstyle("Text", "b")

format

텍스트 형식으로 값을 반환합니다.

format(1234) = "1234"format(now()) = "August 30, 2023 17:55"

add

두 숫자의 합을 반환합니다.

add(5, 10) = 155 + 10 = 15

subtract

두 숫자의 차를 반환합니다.

subtract(5, 10) = -55 - 10 = -5

multiply

두 숫자의 곱을 반환합니다.

multiply(5, 10) = 505 * 10 = 50

mod

첫 번째 수를 두 번째 수로 나누었을 때 나머지를 반환합니다.

mod(5, 10) = 55 % 10 = 5

pow

밑수를 지수만큼 거듭제곱한 결과를 반환합니다.

pow(5, 10) = 97656255 ^ 10 = 9765625

divide

두 숫자를 나눈 몫을 반환합니다.

divide(5, 10) = 0.55 / 10 = 0.5

min

인수 중 가장 작은 수를 반환합니다.

min(1, 2, 3) = 1min([1, 2, 3]) = 1

max

인수 중 가장 큰 수를 반환합니다.

max(1, 2, 3) = 3max([1, 2, 3]) = 3

sum

인수의 합을 반환합니다.

sum(1, 2, 3) = 6sum([1, 2, 3], 4, 5) = 15

abs

수의 절댓값을 반환합니다.

abs(10) = 10abs(-10) = 10

round

가장 가까운 정수로 반올림한 숫자 값을 반환합니다.

round(0.4) = 0round(-0.6) = -1

ceil

지정한 수보다 크거나 같은 수 중 가장 작은 정수를 반환합니다.

ceil(0.4) = 1ceil(-0.6) = 0

floor

지정한 수보다 작거나 같은 수 중 가장 큰 정수를 반환합니다.

floor(0.4) = 0floor(-0.6) = -1

sqrt

수의 양의 제곱근을 반환합니다.

sqrt(4) = 2sqrt(7) = 2.6457513110645907

cbrt

수의 세제곱근을 반환합니다.

cbrt(9) = 2.080083823051904cbrt(64) = 4

exp

e^x를 반환합니다. 여기서 x는 인수이고, e는 자연로그의 밑인 오일러 상수(2.718…)입니다.

exp(1) = 2.718281828459045exp(-1) = 0.36787944117144233

ln

수의 자연로그를 반환합니다.

ln(2.718281828459045) = 1ln(10) = 2.302585092994046

log10

수의 밑이 10인 로그를 반환합니다.

log10(10) = 1log10(100000) = 5

log2

수의 밑이 2인 로그를 반환합니다.

log2(4) = 2log2(1024) = 10

sign

수가 양수이면 1을, 음수이면 -1을, 0이면 0을 반환합니다.

sign(-10) = -1sign(10) = 1

pi

원주율을 반환합니다.

pi() = 3.141592653589793

E

자연로그의 밑을 반환합니다.

e() = 2.718281828459045

toNumber

텍스트에서 숫자를 구문 분석합니다.

toNumber("2") = 2toNumber(now()) = 1693443300000toNumber(true) = 1

now

현재 날짜와 시간을 반환합니다.

now() = @August 30, 2023 5:55 PM

minute

날짜의 분을 반환합니다(0~59).

minute(parseDate("2023-07-10T17:35Z")) = 35

hour

날짜의 시간을 반환합니다(0~23).

hour(parseDate("2023-07-10T17:35Z")) = 17

day

날짜의 요일을 1(월요일)부터 7(일요일)까지의 숫자로 반환합니다.

day(parseDate("2023-07-10T17:35Z")) = 1

date

날짜의 일을 반환합니다(1~31).

date(parseDate("2023-07-10T17:35Z")) = 10

week

날짜가 한 해의 몇 번째 주인지 ISO 형식으로 반환합니다(1~53).

week(parseDate("2023-01-02")) = 1

month

날짜의 월을 반환합니다(1-12).

month(parseDate("2023-07-10T17:35Z")) = 7

year

날짜의 연도를 반환합니다.

year(now()) = 2023

dateAdd

날짜에 시간을 추가합니다. 사용 가능한 단위 인수: "years", "quarters", "months", "weeks", "days", "hours", "minutes"

dateAdd(now(), 1, "days") = @August 31, 2023 5:55 PMdateAdd(now(), 2, "months") = @October 30, 2023 5:55
PM
dateAdd(now(), 3, "years") = @August 30, 2026 5:55 PM

dateSubtract

날짜에서 시간을 뺍니다. 사용 가능한 단위 인수: "years", "quarters", "months", "weeks", "days", "hours", "minutes"

dateSubtract(now(), 1, "days") = @August 29, 2023 5:55 PMdateSubtract(now(), 2, "months") = @June 30, 2023 5:55 PMdateSubtract(now(), 3, "years") = @August 30, 2020 5:55 PM

dateBetween

두 날짜의 차를 반환합니다. 사용 가능한 단위 인수: "years", "quarters", "months", "weeks", "days", "hours", "minutes"

dateBetween(now(), parseDate("2022-09-07"), "days") = 357dateBetween(parseDate("2030-01-01"), now(), "years") = 6

dateRange

시작 날짜와 종료 날짜로 구성된 기간을 반환합니다.

dateRange(prop("Start Date"), prop("End Date")) = @September 7, 2022 → September 7, 2023

dateStart

기간의 시작일을 반환합니다.

dateStart(prop("Date Range")) = @September 7, 2022dateBetween(dateStart(prop("Date Range")), dateEnd(prop("Date Range")), "days") = -365

dateEnd

기간의 종료일을 반환합니다.

dateEnd(prop("Date range")) = @September 7, 2023dateBetween(dateEnd(prop("Date Range")), dateStart(prop("Date Range")), "days") = 365

timestamp

1970년 1월 1일 이후로 경과한 시간을 밀리초 단위로 나타내는 현재의 Unix 타임스탬프를 반환합니다.

timestamp(now()) = 1693443300000

fromTimestamp

주어진 Unix 타임스탬프에서 날짜를 반환합니다. 타임스탬프는 1970년 1월 1일 이후로 경과한 밀리초를 나타냅니다. 참고: 반환되는 날짜에는 초와 밀리초가 포함되지 않습니다.

fromTimestamp(1689024900000) = @July 10, 2023 2:35 PM

formatDate

사용자가 지정한 형식의 문자열로 날짜 형식을 지정합니다. 날짜의 각 부분을 나타내기 위해 연도는 "YYYY", 월은 "MM", 일은 "DD", 시간은 "h" , 분은 "mm" 텍스트를 형식 문자열에 포함할 수 있습니다.

formatDate(now(), "MMMM D, Y") = "August 30, 2023"
formatDate(now(), "MM/DD/YYYY")
= "08/30/2023"
formatDate(now(), "h:mm A")
= "17:55 PM"

parseDate

ISO 8601 표준에 따라 구문 분석된 날짜를 반환합니다.

parseDate("2022-01-01") = @January 1, 2022parseDate("2022-01-01T00:00Z") = @December 31, 2021 4:00 PM

name

사람의 이름을 반환합니다.

name(prop("Created By"))prop("Pioneers").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace"

email

사람의 이메일 주소를 반환합니다.

email(prop("Created By"))prop("People").map(email(current)).join(", ")

at

리스트에서 지정된 인덱스의 값을 반환합니다.

at([1, 2, 3], 1) = 2

first

리스트의 첫 번째 항목을 반환합니다.

first([1, 2, 3]) = 1

last

리스트의 마지막 항목을 반환합니다.

last([1, 2, 3]) = 3

slice

제공된 시작 색인(포함)부터 끝 색인(선택적, 제외)까지 리스트의 항목을 반환합니다.

slice([1, 2, 3], 1, 2) = [2]slice(["a", "b", "c"], 1) = ["b", "c"]

concat

여러 리스트의 연결을 반환합니다.

concat([1, 2], [3, 4]) = [1, 2, 3, 4]concat(["a", "b"], ["c", "d"]) = ["a", "b", "c", "d"]

sort

리스트를 정렬된 순서로 반환합니다.

sort([3, 1, 2]) = [1, 2, 3]

reverse

역순의 리스트를 반환합니다.

reverse(["green", "eggs", "ham"]) = ["ham", "eggs", "green"]

join

각 값 사이에 조이너(joiner)를 포함하여 리스트의 값을 반환합니다.

join(["a", "b", "c"], ", ") = "a, b, c"join(["dog", "go"], "") = "doggo"

split

텍스트 입력을 구분 기호로 분할하여 만들어진 값의 리스트를 반환합니다.

split("apple,pear,orange", ",") = ["apple", "pear", "orange"]

unique

입력 리스트에서 고유값의 리스트를 반환합니다.

unique([1, 1, 2]) = [1, 2]

includes

리스트에 지정된 값이 있으면 TRUE를, 없으면 FALSE를 반환합니다.

includes(["a", "b", "c"], "b") = trueincludes([1, 2, 3], 4) = false

find

리스트에서 조건이 TRUE로 계산되는 첫 번째 항목을 반환합니다.

find(["a", "b", "c"], current == "b") = "b"find([1, 2, 3], current > 100) = Empty

findIndex

리스트에서 조건이 TRUE인 첫 번째 항목의 인덱스를 반환합니다.

findIndex(["a", "b", "c"], current == "b") = 1findIndex([1, 2, 3], current > 100) = -1

filter

리스트에서 조건이 TRUE인 값을 반환합니다.

filter([1, 2, 3], current > 1) = [2, 3]filter(["a", "b", "c"], current == "a") = ["a"]

some

리스트의 항목 중 주어진 조건을 충족하는 항목이 있으면 TRUE를, 없으면 FALSE를 반환합니다.

some([1, 2, 3], current == 2) = truesome(["a", "b", "c"], current.length > 2) = false

every

리스트의 모든 항목이 주어진 조건을 충족하면 TRUE를, 아니면 FALSE를 반환합니다.

every([1, 2, 3], current > 0) = trueevery(["a", "b", "c"], current == "b") = false

map

입력 리스트의 모든 항목에 표현식을 호출한 결과가 채워진 리스트를 반환합니다.

map([1, 2, 3], current + 1) = [2, 3, 4]map([1, 2, 3], current + index) = [1, 3, 5]

flat

리스트의 리스트를 하나의 리스트로 획일화합니다.

flat([1, 2, 3]) = [1, 2, 3]flat([[1, 2], [3, 4]]) = [1, 2, 3, 4]

id

현재 페이지의 ID를 반환합니다. 페이지 ID가 없는 경우, 수식이 있는 페이지의 ID를 반환합니다.

id()
id(prop("Relation").first())

equal

두 값이 같으면 TRUE를, 다르면 FALSE를 반환합니다.

equal(1, 1) = true"a" == "b" = false

unequal

두 값이 같으면 FALSE를, 다르면 TRUE를 반환합니다.

unequal(1, 2) = true"a" != "a" = false

let

변수에 값을 할당하고 해당 변수를 사용하여 표현식을 계산합니다.

let(person, "Alan", "Hello, " + person + "!") = "Hello, Alan!"let(radius, 4, round(pi() * radius ^ 2)) = 50

lets

여러 변수에 값을 할당하고 해당 변수를 사용하여 표현식을 계산합니다.

lets(a, "Hello", b, "world", a + " " + b) = "Hello world"lets(base, 3, height, 8, base * height / 2) = 12


피드백 보내기

이 내용이 도움이 되었나요?


Powered by Fruition