Syntax van formules en functies

Formulefuncties - hero
In this Article

Notion-formules kunnen worden toegepast op allerlei eigenschappen en functies. We hebben een lijstje voor je opgesteld ➗


Wil je meer informatie over de basisprincipes van formules? Lees dan deze inleiding:

Notion-formules kunnen worden toegepast op allerlei eigenschappen en functies. We hebben een lijstje voor je opgesteld!

Formules ondersteunen veel eigenschapstypen. Als het type niet direct wordt ondersteund, worden de gegevens automatisch omgezet in een ander gegevenstype (meestal tekst).

Eigenschapstypen

Voorbeelden

Type formule

Titel

prop("Titel")prop("Titel").length()

Tekst

Tekst

prop("Tekst")prop("Tekst").length()

Tekst

Selecteren

prop("Prioriteit") == "Hoog"

Tekst

Meerdere selecteren

prop("Tags").length()prop("Tags").includes("Financiën")

Tekst

Selectievakje

prop("Selectievakje")
not prop("Selectievakje")

Boolean

E-mail, URL, Telefoonnummer

!empty(prop("Telefoon"))
!empty(prop("E-mail"))
link("Bellen", "tel:" + prop("Telefoon"))

Tekst

ID

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

Tekst

Gemaakt door,
Bewerkt door

prop("Gemaakt door").name()
prop("Gemaakt door").email()

Persoon

Persoon

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

Persoon

Datum,
Gemaakt op/om,
Laatst bewerkt op/om

prop("Vervaldatum") > now()
dateBetween(prop("Verjaardag"), now(), "dagen")

Datum

Getal

prop("Getal") / 2
pi() * prop("Straal") ^ 2

Getal

Relatie

prop("Taken").length()
prop("Taken").filter(current.prop("Status") !== "Gereed")

Pagina

Rollup

prop("Inkopen").length()
prop("Gemiddelde kosten") * 12

Nummer, datum of een willekeurig type lijst. Afhankelijk van rollup-configuratie.

Ingebouwde onderdelen zijn specifieke symbolen en waarden die in de taal zijn geïntegreerd om een berekening aan te duiden.

Ingebouwd onderdeel

Voorbeeld

Wiskundige operators:+, -, *, %

2 * pi()"hallo" + "wereld"

Boolean waarden:
true, false

truefalse

Vergelijkingsoperators:
==, >, >=, <, <=

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

Logische operators:
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

Ternaire voorwaardelijke operator:
? :

X ? Y : Z komt overeen met if(X, Y, Z)

Notion-formules ondersteunen de volgende functies.

Naam

Beschrijving

Voorbeeld

if

Geeft als resultaat de eerste waarde als de voorwaarde true is en anders de tweede waarde.

if(true, 1, 2) = 1if(false, 1, 2) = 2prop("Status") == true ? "Voltooid" : "Onvoltooid"

ifs

Geeft als resultaat de waarde die overeenkomt met de eerste true-voorwaarde. Dit kan worden gebruikt als alternatief voor meerdere geneste if()-statements.

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

empty

Geeft als resultaat true als de waarde leeg is. 0, “” en [] worden als leeg beschouwd.

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

length

Geeft als resultaat de lengte van de tekst of lijstwaarde.

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

substring

Geeft als resultaat de substring van de tekst vanaf de beginindex (inclusief) tot de eindindex (optioneel en exclusief).

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

contains

Geeft als resultaat true als de zoekstring aanwezig is in de waarde.

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

test

Geeft als resultaat true als de waarde overeenkomt met de reguliere expressie en anders false.

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

match

Geeft als resultaat alle overeenkomsten van de reguliere expressie als een lijst.

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

replace

Vervangt de eerste overeenkomst van de reguliere expressie door de vervangingswaarde.

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

replaceAll

Vervangt alle overeenkomsten van de reguliere expressie door de vervangingswaarde.

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

lower

Converteert de tekst naar kleine letters.

lower("NOTION") = "notion"

upper

Converteert de tekst naar hoofdletters.

upper("notion") = "NOTION"

repeat

Herhaalt de tekst een bepaald aantal keer.

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

link

Maakt een hyperlink van de labeltekst en de URL.

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

style

Voegt stijlen en kleuren toe aan de tekst. Geldige opmaakstijlen: "b" (vet), "u" (onderstrepen), "i" (cursief), "c" (code) of "s" (doorhalen). Geldige kleuren: "gray", "brown", "orange", "yellow", "green", "blue", "purple", "pink" en "red". Voeg "_background" toe aan kleuren om achtergrondkleuren in te stellen.

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

unstyle

Verwijdert opmaakstijlen uit de tekst. Als er geen stijlen worden opgegeven, worden alle stijlen verwijderd.

unstyle("Tekst")unstyle("Tekst", "b")

format

Geeft als resultaat de waarde opgemaakt als tekst.

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

add

Geeft als resultaat de som van twee getallen.

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

subtract

Geeft als resultaat het verschil van twee getallen.

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

multiply

Geeft als resultaat het product van twee getallen.

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

mod

Geeft als resultaat het eerste getal modulo het tweede getal.

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

pow

Geeft als resultaat het basisgetal verheven tot een macht.

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

divide

Geeft als resultaat het quotiënt van twee getallen.

divide(5, 10) = 0,55 / 10 = 0,5

min

Geeft als resultaat de kleinste waarde van de argumenten.

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

max

Geeft als resultaat de grootste waarde van de argumenten.

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

sum

Geeft als resultaat de som van de argumenten.

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

median

Geeft als resultaat de middelste waarde van de argumenten.

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

mean

Geeft als resultaat het rekenkundig gemiddelde van de argumenten.

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

abs

Geeft als resultaat de absolute waarde van het getal.

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

round

Geeft als resultaat de waarde van een getal afgerond tot het dichtstbijzijnde gehele getal.

round(0,4) = 0round(-0,6) = -1

ceil

Geeft als resultaat het kleinste gehele getal groter dan of gelijk aan het getal.

ceil(0,4) = 1ceil(-0,6) = 0

floor

Geeft als resultaat het grootste gehele getal kleiner dan of gelijk aan het getal.

floor(0,4) = 0floor(-0,6) = -1

sqrt

Geeft als resultaat de positieve vierkantswortel van het getal.

sqrt(4) = 2sqrt(7) = 2,6457513110645907

cbrt

Geeft de derdemachtswortel van het getal.

cbrt(9) = 2,080083823051904cbrt(64) = 4

exp

Geeft als resultaat e^x, waarbij x het argument is en e het getal van Euler (2,718…), de basis van de natuurlijke logaritme.

exp(1) = 2,718281828459045exp(-1) = 0,36787944117144233

ln

Geeft als resultaat de natuurlijke logaritme van het getal.

ln(2,718281828459045) = 1ln(10) = 2,302585092994046

log10

Geeft als resultaat de logaritme met grondtal 10 van het getal.

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

log2

Geeft als resultaat de logaritme met grondtal 2 van het getal.

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

sign

Geeft als resultaat 1 als het getal positief is, -1 als het negatief is en 0 als het nul is.

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

pi

Geeft als resultaat de verhouding tussen de omtrek en de diameter van een cirkel.

pi() = 3,141592653589793

e

Geeft als resultaat de basis van de natuurlijke logaritme.

e() = 2,718281828459045

toNumber

Zet een tekst om in een getal.

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

now

Geeft als resultaat de huidige datum en tijd.

now() = @30 augustus 2023 17:55

today

Geeft als resultaat de huidige datum, zonder de tijd.

today() = @19 april 2024

minute

Geeft als resultaat de minuten van de datum en tijd (0-59).

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

hour

Geeft als resultaat het uur van de datum en tijd (0-23).

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

day

Geeft als resultaat de dag van de week van de datum en tijd, van 1 (maandag) tot 7 (zondag).

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

date

Geeft als resultaat de dag van de maand van de datum en tijd (1-31).

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

week

Geeft als resultaat de week volgens ISO van het jaar van de datum en tijd (1-53).

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

month

Geeft als resultaat de maand van de datum en tijd (1-12).

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

year

Geeft als resultaat het jaar van de datum en tijd.

year(now()) = 2023

dateAdd

Voegt de tijd toe aan de datum. De eenheid van het argument kan een van de volgende zijn: "years", "quarters", "months", "weeks", "days", "hours" of "minutes".

dateAdd(now(), 1, "days") = @31 augustus 2023 17:55dateAdd(now(), 2, "months") = @30 oktober 2023 17:55
dateAdd(now(), 3, "years") = @30 augustus 2026 17:55

dateSubtract

Trekt de tijd af van de datum. De eenheid van het argument kan een van de volgende zijn: "years", "quarters", "months", "weeks", "days", "hours" of "minutes".

dateSubtract(now(), 1, "days") = @29 augustus 2023 17:55dateSubtract(now(), 2, "months") = @30 juni 2023 17:55dateSubtract(now(), 3, "years") = @30 augustus 2020 17:55

dateBetween

Geeft als resultaat het verschil tussen twee datums. De eenheid van het argument kan een van de volgende zijn: "years", "quarters", "months", "weeks", "days", "hours" of "minutes".

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

dateRange

Geeft als resultaat een datumbereik dat is opgebouwd uit de begin- en einddatum.

dateRange(prop("Startdatum"), prop("Einddatum")) = @7 september 2022 → 7 september 2023

dateStart

Geeft als resultaat het begin van het datumbereik.

dateStart(prop("Datumbereik")) = @7 september 2022dateBetween(dateStart(prop("Datumbereik")), dateEnd(prop("Datumbereik")), "days") = -365

dateEnd

Geeft als resultaat het einde van het datumbereik.

dateEnd(prop("Datumbereik")) = @7 september 2023dateBetween(dateEnd(prop("Datumbereik")), dateStart(prop("Datumbereik")), "days") = 365

timestamp

Geeft als resultaat de huidige Unix-tijdstempel, die het aantal milliseconden weergeeft dat is verstreken sinds 1 januari 1970.

timestamp(now()) = 1693443300000

fromTimestamp

Geeft als resultaat de datum en tijd van de opgegeven Unix-tijdstempel. De tijdstempel geeft het aantal milliseconden aan dat is verstreken sinds 1 januari 1970. Opmerking: de opgegeven tijd is nauwkeurig tot op de minuut, zonder behoud van de seconden en milliseconden.

fromTimestamp(1689024900000) = @10 juli 2023 14:35

formatDate

Maakt de datum op met een aangepaste string voor de notatie. Deze string kan de volgende tekst bevatten om delen van de datum weer te geven: "YYYY" voor jaar, "MM" voor maand, "DD" voor dag, "h" voor uur, "mm" voor minuut.

formatDate(now(), "D MMMM Y") = "30 augustus 2023"
formatDate(now(), "DD-MM-YYYY")
= "30-08-2023"
formatDate(now(), "h:mm")
= "17:55"

parseDate

Geeft als resultaat de datum en tijd in de notatie van ISO-norm 8601.

parseDate("01-01-2022") = @1 januari 2022parseDate("01-01-2022T00:00Z") = @31 december 2021 16:00

name

Geeft als resultaat de naam van een persoon.

name(prop("Gemaakt door"))prop("Pioniers").map(name(current)).join(", ") = "Grace Hopper, Ada Lovelace"

email

Geeft als resultaat het e-mailadres van een persoon.

email(prop("Gemaakt door"))prop("Persoon").map(email(current)).join(", ")

at

Geeft als resultaat de waarde op de opgegeven index in een lijst, waarbij de index telt vanaf nul.

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

first

Geeft als resultaat het eerste item in de lijst.

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

last

Geeft als resultaat het laatste item in de lijst.

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

slice

Geeft als resultaat de items van de lijst vanaf de opgegeven beginindex (inclusief) tot de eindindex (optioneel en exclusief), waarbij de index telt vanaf nul.

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

concat

Geeft als resultaat de aaneenschakeling van meerdere lijsten.

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

sort

Geeft als resultaat de lijst in gesorteerde volgorde.

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

reverse

Geeft als resultaat de omgekeerde lijst.

reverse(["groen", "eieren", "ham"]) = ["ham", "eieren", "groen"]

join

Geeft als resultaat de waarden van de lijst met het tweede argument als scheidingsteken tussen elk van de waarden geplaatst.

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

split

Geeft als resultaat de lijst met waarden die is gemaakt door tekstinvoer op te splitsen door een scheidingsteken.

split("appel,peer,banaan", ",") = ["appel", "peer", "banaan"]

unique

Geeft als resultaat de lijst met unieke waarden in de invoerlijst.

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

includes

Geeft als resultaat true als de lijst de opgegeven waarde bevat en anders false.

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

find

Geeft als resultaat het eerste item in de lijst waarvoor de voorwaarde true is.

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

findIndex

Geeft als resultaat de index van het eerste item in de lijst waarvoor de voorwaarde true is, waarbij de index telt vanaf nul.

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

filter

Geeft als resultaat de waarden in de lijst waarvoor de voorwaarde true is.

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

some

Geeft als resultaat true als minimaal één item in de lijst voldoet aan de opgegeven voorwaarde en anders false.

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

every

Geeft als resultaat true als elk item in de lijst voldoet aan de opgegeven voorwaarde en anders false.

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

map

Geeft als resultaat de lijst die gevuld is met de resultaten van het aanroepen van de expressie op elk item in de invoerlijst.

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

flat

Voegt een lijst met lijsten samen tot een enkele lijst.

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

id

Geeft als resultaat het ID van de pagina. Als er geen pagina is opgegeven, wordt de ID gegeven van de pagina waarop deze formule staat.

id()
id(prop("Relatie").first())

equal

Geeft als resultaat true als beide waarden gelijk zijn en anders false.

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

unequal

Geeft als resultaat false als beide waarden gelijk zijn en anders true.

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

let

Wijst een waarde toe aan een variabele en evalueert de uitdrukking met behulp van die variabele.

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

lets

Wijst waarden toe aan meerdere variabelen en evalueert de uitdrukking met behulp van die variabelen.

lets(a, "Hallo", b, "wereld", a + " " + b) = "Hallo wereld"lets(basis, 3, hoogte, 8, basis * hoogte / 2) = 12


Geef feedback

Was deze bron nuttig?