Formelsyntax och funktioner

Formelfunktioner – hero
I den här artikeln

Notion-formler fungerar på olika egenskaper och funktioner. Här är en lista över dem! ➗


Vill du utforska grunderna för formler? Läs vår introduktionsartikel:

Notion-formler fungerar på olika egenskaper och funktioner. Här är en lista över dem!

Formler har stöd för många egenskapstyper. Om en viss egenskapstyp inte stöds direkt konverteras data automatiskt till en annan datatyp (vanligtvis text).

Egenskapstyper

Exempel

Formeltyp

Titel

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

Text

Text

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

Text

Välj

prop("Priority") == "High"

Text

Flerval

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

Text

Kryssruta

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

Booleskt värde

E-post, webbadress, telefonnummer

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

Text

Unikt ID

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

Text

Skapad av,
Redigerad av

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

Person

Person

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

Person

Datum,
Skapad kl.,
Senast redigerad

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

Datum

Nummer

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

Nummer

Relation

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

Sida

Sammanslagning

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

Någon typ av nummer, datum eller lista. Beror på sammanslagningskonfigurationen.

Inbyggda insättningar är specifika symboler och värden som är inbyggda i språket för att hjälpa till att beteckna en beräkning.

Inbyggd

Exempel

Matematiska operatorer:+, -, *, %

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

Booleska värden:
sant, falskt

truefalse

Jämförelseoperatorer:
==, >, >=, <, <=

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

Logiska operatorer:
och, eller, inte

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

Ternär operator:
? :

X ? Y : Z är ekvivalent med om(X, Y, Z)

Notion-formler har stöd för följande funktioner.

Namn

Beskrivning

Exempel

if

Återger det första värdet om kriteriet är true, annars återges det andra värdet.

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

ifs

Återger det värde som motsvarar det första true-kriteriet. Detta kan användas som ett alternativ till flera kapslade om()-uttalanden.

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

Tom

Återger true om värdet är tomt. 0, "" och [] betraktas som tomma.

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

length

Återger längden på text- eller listvärdet.

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

substring

Återger delsträngen av texten från startindex (inklusive) till slutindex (valfritt och exklusivt).

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

Innehåller

Återger true om söksträngen finns i värdet.

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

Test

Återger true om värdet matchar det reguljära uttrycket och annars false.

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

match

Återger alla matchningar av det reguljära uttrycket som en lista.

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

Ersätt

Ersätter den första matchningen av ordinarie uttryck med ersättningsvärdet.

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

Ersätt alla

Ersätter alla matchningar av ordinarie uttryck med ersättningsvärdet.

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

lower

Konverterar texten till små bokstäver.

lower("NOTION") = "notion"

upper

Konverterar texten till stora bokstäver.

upper("notion") = "NOTION"

Upprepa

Upprepar texten ett visst antal gånger.

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

Länka

Skapar en hyperlänk från etikettexten och URL-adressen.

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

Stil

Lägger till stilar och färger i texten. Giltiga formateringsstilar: "b" (fet stil), "u" (understruken), "i" (kursiv), "c" (kod) och "s" (genomstruken). Giltiga färger: "grå", "brun", "orange", "gul", "grön", "blå", "lila", "rosa" och "röd". Lägg till "_bakgrund" till färger för att ställa in bakgrundsfärger.

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

unstyle

Tar bort formateringsstilar från texten. Om inga stilar anges tas alla stilar bort.

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

Format

Återger värdet formaterat som text.

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

Lägg till

Återger summan av två tal.

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

subtract

Återger skillnaden mellan två tal.

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

multiply

Återger produkten av två tal.

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

mod

Dividerar två tal och återger resten.

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

pow

Returnerar resultatet av ett basnummer som höjs till en potens.

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

divide

Återger kvoten av två tal.

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

Min

Återger det minsta antalet av argumenten.

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

Max

Återger det största antalet argument.

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

Summa

Återger summan av dess argument.

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

Median

Returnerar medelvärdet av sina argument.

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

mean

Returnerar det aritmetiska genomsnittet för argumenten.

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

abs

Återger absolutvärdet för ett tal.

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

round

Returnerar värdet för ett tal avrundat till närmaste heltal.

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

ceil

Återger det minsta heltal som är större än eller lika med talet.

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

floor

Återger det största heltal som är mindre än eller lika med talet.

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

sqrt

Återger den positiva kvadratroten av talet.

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

cbrt

Återger kubikroten för ett tal.

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

exp

Återger e^x, där x är argumentet och e är Eulers tal (2,718…), basen för den naturliga logaritmen.

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

ln

Återger den naturliga logaritmen för talet.

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

log10

Återger logaritmen med bas 10 för ett tal.

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

log2

Återger logaritmen med bas 2 för ett tal.

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

sign

Återger 1 om talet är positivt, -1 om det är negativt och 0 om det är noll.

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

pi

Återger förhållandet mellan en cirkels omkrets och dess diameter.

pi() = 3.141592653589793

e

Återger basen för den naturliga logaritmen.

e() = 2.718281828459045

toNumber

Parsar ett tal från text.

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

nu

Returnerar aktuellt datum och aktuell tid.

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

idag

Ger aktuellt datum utan tid.

today() = @April 19, 2024

minute

Återger minuten för datumet (0–59).

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

hour

Återger timmen för datumet (0-23).

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

dag

Återger veckodagen för ett datum, mellan 1 (måndag) och 7 (söndag).

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

datum

Återger dagen i månaden från datumet (1-31).

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

vecka

Returnerar ISO-veckan i året för datumet (1-53).

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

månad

Återger månaden för datumet (1–12).

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

år

Återger årtalet för datumet.

year(now()) = 2023

dateAdd

Lägger till en tid till datumet. Enhetsargumentet kan vara ett av följande: "år", "kvartal", "månader", "veckor", "dagar", "timmar" eller "minuter".

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

Subtraherar tiden från datumet. Enhetsargumentet kan vara ett av följande: "år", "kvartal", "månader", "veckor", "dagar", "timmar" eller "minuter".

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

Returnerar skillnaden mellan två datum. Enhetsargumentet kan vara ett av följande: "år", "kvartal", "månader", "veckor", "dagar", "timmar" eller "minuter".

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

Datumintervall

Returnerar ett datumomfång som konstruerats utifrån start- och slutdatum.

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

dateStart

Återger början på ett datumomfång.

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

dateEnd

Återger slutet av ett datumomfång.

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

timestamp

Återger den aktuella Unix-tidsstämpeln som representerar antalet millisekunder som har förflutit sedan den 1 januari 1970.

timestamp(now()) = 1693443300000

fromTimestamp

Returnerar datumet från den angivna Unix-tidsstämpeln. Tidstämpeln anger antalet millisekunder som har förflutit sedan den 1 januari 1970. Obs! Det returnerade datumet kommer inte att innehålla sekunder och millisekunder.

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

Formatera datum

Formaterar ett datum med en anpassad formatsträng. Formatsträngen kan innehålla följande för att representera delar av datumet: "YYYY" för år, "MM" för månad, "DD" för dag, "h" för timme och "mm" för minut.

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

Återger datumet tolkat enligt ISO 8601-standarden.

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

Namn

Returnerar e-postadressen för en person.

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

E-post

Returnerar e-postadressen för en person.

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

den/kl.

Återger värdet vid det angivna indexet i en lista.

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

first

Returnerar det första objektet i listan.

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

förra

Returnerar det sista objektet i listan.

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

slice

Returnerar objekten i listan från det angivna startindexet (inklusive) till slutindexet (valfritt och exklusive).

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

concat

Återger sammankopplingen av flera listor.

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

Sortera

Returnerar listan i sorterad ordning.

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

reverse

Återger den omvända listan.

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

Anslut

Återger värdena i listan med förbindningen placerad mellan varje värde.

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

Dela i två

Returnerar listan över värden som skapats genom att dela upp en textinmatning med en avgränsare.

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

Unika

Återger listan med unika värden i inmatningslistan.

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

Inkluderar

Returnerar true om listan innehåller det angivna värdet och false annars.

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

sök

Returnerar det första objektet i listan där kriteriet utvärderas som sant.

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

findIndex

Återger indexet för det första objektet i listan för vilket kriteriet är true.

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

Filtrera

Återger de värden i listan för vilka kriteriet är true.

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

Några

Återger true om något objekt i listan uppfyller det givna villkoret, och false annars.

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

varje

Återger true om alla objekt i listan uppfyller det givna villkoret, och false annars.

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

map

Återger listan som fyllts med resultatet av att uttrycket anropats på varje objekt i inmatningslistan.

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

flat

Sammansätter en lista med listor till en enda lista.

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

ID

Återger sidans ID. Om ingen sida anges återges ID för den sida som formeln finns på.

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

equal

Återger true om båda värdena är lika och annars false.

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

unequal

Återger false om båda värdena är lika och annars true.

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

let

Tilldelar ett värde till en variabel och utvärderar uttrycket med hjälp av variabeln.

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

lets

Tilldelar värden till flera variabler och utvärderar uttrycket med hjälp av dessa variabler.

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


Ge feedback

Var den här resursen till hjälp?