数式の構文と関数

数式 hero
この記事の内容

Notion数式では、さまざまなプロパティや関数を扱うことができます。以下がその一覧です ➗


数式の基本は、こちらの入門ガイドをご覧ください。

Notion数式では、さまざまなプロパティや関数を扱うことができます。以下がその一覧です。

数式は多くの種類のプロパティをサポートしています。直接サポートされていない場合、そのデータは自動的に別のデータ型(通常はテキスト)に変換されます。

プロパティの種類

数式の種類

タイトル

prop("タイトル")prop("タイトル").length()

テキスト

テキスト

prop("テキスト")prop("テキスト").length()

テキスト

セレクト

prop("優先度") == "高"

テキスト

マルチセレクト

prop("タグ").length()prop("タグ").includes("ファイナンス")

テキスト

チェックボックス

prop("チェックボックス")
not prop("チェックボックス")

ブール値

メールアドレス、URL、電話番号

!empty(prop("電話番号"))
!empty(prop("メール"))
link("電話する", "tel:" + prop("電話番号"))

テキスト

ユニークID

prop("タスクID").split("-").first() ← プレフィックス
prop("タスクID").split("-").last() ← ID

テキスト

作成者、
最終更新者

prop("作成者").name()
prop("作成者").email()

ユーザー

ユーザー

prop("ユーザー")
prop("ユーザー").at(0).name()
prop("ユーザー").map(current.email())

ユーザー

日付、
作成日時、
最終更新日時

prop("対応期限") > now()
dateBetween(prop("誕生日"), now(), "days")

日付

数値

prop("数値") / 2
pi() * prop("半径") ^ 2

数値

リレーション

prop("タスク").length()
prop("タスク").filter(current.prop("ステータス") !== "完了")

ページ

ロールアップ

prop("購入品目").length()
prop("平均コスト") * 12

数値、日付、または任意の種類のリスト(ロールアップの設定内容により異なります)

組み込みとは、計算を指定するために言語に組み込まれている特定の記号や値のことです。

組み込み

数学演算子:+-*%

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

ブール値:
truefalse

truefalse

比較演算子:==>>=<<=

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

論理演算子
andornot

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

条件が真の場合は最初の値を返し、それ以外の場合は2番目の値を返します。

if(true, 1, 2) = 1if(false, 1, 2) = 2prop("チェックあり") == true ? "完了" : "未完了"

ifs

最初の真の条件に対応する値を返します。これは、入れ子になっている複数の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" があります。背景色を設定するには、"_background" を色の末尾に追加します。

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

unstyle

テキストから書式スタイルを削除します。スタイルが指定されていない場合は、すべてのスタイルが削除されます。

unstyle("テキスト")unstyle("テキスト", "b")

format

文字列としてフォーマットされた値を返します。

format(1234) = "1234"format(now()) = "2023年8月30日 17時55分"

add

2つの数値の和を返します。

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

subtract

2つの数値の差を返します。

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

multiply

2つの数値の積を返します。

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

mod

最初の数値を2番目の数値で割った際の余りを返します。

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

pow

基数のべき乗の結果を返します。

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

divide

2つの数値の商を返します。

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

引数の中央に来る値を返します。

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

mean

引数の算術平均を返します。

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() = @2023年8月30日 午後5時55分

today

現在の日付を時刻なしで返します。

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") = @2023年8月31日 午後5時55分dateAdd(now(), 2, "months") = @2023年10月30日 午後5時55分
dateAdd(now(), 3, "years") = @2026年8月30日 午後5時55分

dateSubtract

日付から時間を引きます。最後の引数は、"years""quarters""months""weeks""days""hours""minutes" のいずれかの単位を指定します。

dateSubtract(now(), 1, "days") = @2023年8月29日 午後5時55分dateSubtract(now(), 2, "months") = @2023年6月30日 午後5時55分dateSubtract(now(), 3, "years") = @2020年8月30日 午後5時55分

dateBetween

2つの日付の間の時間を返します。最後の引数は、"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("開始日"), prop("終了日")) = @2022年9月7日 → 2023年9月7日

dateStart

日付範囲の始めを返します。

dateStart(prop("日付範囲")) = @2022年9月7日dateBetween(dateStart(prop("日付範囲")), dateEnd(prop("日付範囲")), "days") = -365

dateEnd

日付範囲の終わりを返します。

dateEnd(prop("日付範囲")) = @2023年9月7日dateBetween(dateEnd(prop("日付範囲")), dateStart(prop("日付範囲")), "days") = 365

timestamp

1970年1月1日から経過したミリ秒数を表す、現在のUnixタイムスタンプを返します。

timestamp(now()) = 1693443300000

fromTimestamp

指定されたUnixタイムスタンプの日付を返します。タイムスタンプは、1970年1月1日から経過したミリ秒数を表します。注: 返される日付は、秒とミリ秒を保持しません。

fromTimestamp(1689024900000) = @2023年7月10日 午後2時35分

formatDate

カスタムの書式設定文字列を使用して日付の書式を設定します。書式設定文字列には、日付の一部を表す次のテキストを含めることができます。"YYYY" は年、"MM" は月、"DD" は日、"h" は時、"mm" は分です。

formatDate(now(), "YY年MMMMDD日") = "23年8月30日"
formatDate(now(), "MM/DD/YYYY")
= "08/30/2023"
formatDate(now(), "h:mm A")
= "5:55 午後"

parseDate

ISO8601規格に従って解析された日付を返します。

parseDate("2022-01-01") = @2022年1月1日parseDate("2022-01-01T00:00Z") = @2021年12月31日 午後4時00分

name

ユーザーの名前を返します。

name(prop("作成者"))prop("パイオニア").map(name(current)).join(", ") = "グレース・ホッパー, エイダ・ラブレス"

email

ユーザーのメールアドレスを返します。

email(prop("作成者"))prop("ユーザー").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(["野菜", "卵", "ハム"]) = ["ハム", "卵", "野菜"]

join

各値の間に結合子を配置したリストの値を返します。

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

split

テキスト入力を区切り記号で分割した値のリストを返します。

split("リンゴ,梨,オレンジ", ",") = ["リンゴ", "梨", "オレンジ"]

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) = 空欄

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

複数のリストのリストを、1つのリストにフラット化します。

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

id

ページのIDを返します。ページが指定されていない場合は、数式が存在するページのIDを返します。

id()
id(prop("リレーション").first())

equal

両方の値が等しい場合はtrueを返し、それ以外の場合はfalseを返します。

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

unequal

両方の値が等しい場合はfalseを返し、それ以外の場合はtrueを返します。

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

let

変数に値を代入し、その変数を使用して数式を評価します。

let(person, "タナカさん", "こんにちは、" + person + "!") = "こんにちは、タナカさん!"let(radius, 4, round(pi() * radius ^ 2)) = 50

lets

複数の変数に値を代入し、それらの変数を使用して数式を評価します。

lets(a, "Hello", b, "world", a + " " + b) = "Hello world"lets(底辺, 3, 高さ, 8, 底辺*高さ/2) = 12


フィードバックを送信

このコンテンツは役に立ちましたか?


Powered by Fruition