수식 구문과 함수

수식 함수 메인
이 글에서는

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

중앙값

인수의 중간값을 반환합니다.

median(1, 2, 4) = 2
median([1, 2, 3], 4) = 2.5

평균

인수의 산술 평균을 반환합니다.

mean(1, 2, 3) = 2
mean([1, 2, 3], 4, 5) = 3

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

오늘

시간을 제외한 현재 날짜를 반환합니다.

today() = @2024년 4월 19일

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


피드백 보내기

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