Touma Hoshino

関数チートシート

関数一覧

このチートシートは、Notionの数式を完全に網羅したクイックリファレンスです。

Notion 数式エディターで利用可能なすべての組み込みの演算子、関数のサンプルを紹介しています。

Notion数式 Notion数式

数式の用語

数式を利用するときによく使われる用語を開設します。

プロパティ

Notionのデータベースで設定されている固有のプロパティです。

プロパティはエディタの候補に挙がってくるプロパティを選択するか、prop("支出合計")のように書くことができます。 プロパティを参照する際は、プロパティ名を正確に入力する必要があり、大文字と小文字も区別されます。

組み込みの演算子

Notionの数式には、真偽値(true or false)や算術演算子(+, -, *, /)、論理演算子(and, or, not)などがあらかじめ用意されています。

関数

関数は複雑な処理を素早く実行するために用意された定義済みのコマンドのことです。 代表的なものとして変数を定義するlets()関数や日付のフォーマットを整えるformatDate()関数などがあります。

引数

関数に渡される値のことです。関数に追加情報や処理するデータを提供するパラメーターだと考えてください。 引数は関数に「どのデータを」「どう処理するか」を伝える大切な情報です。 引数の数や型は関数によって異なり、必ず渡さなければいけない引数と任意の引数があります。

データ型

数式は7つの異なるデータ型をサポートしています。

  • 文字列
  • 数値
  • 日付
  • ユーザー
  • 真偽値
  • ページ
  • リスト

💡 詳細は、データ型 で解説しています。

組み込み

add

2つ以上の数値を加算する関数です。

第一引数:加算される数値またはテキストを指定します。数値の場合は計算結果が、テキストの場合は文字列の結合結果が返されます。

第二引数:加算される2つ目の数値またはテキストを指定します。第一引数と同様に、数値の場合は計算結果が、テキストの場合は文字列の結合結果が返されます。

2 + 5 /* 出力: 7 */

"モンキー" + "D" + " ルフィ" /* 出力: "モンキー D ルフィ" */

add(4,7) /* 出力: 11 */

40.add(2) /* 出力: 42 */

subtract

2つの数値の差を求める関数です。

第一引数:減算される数値を指定します。

第二引数:減算する数値を指定します。第一引数から第二引数を引いた結果が返されます。

10 - 3 /* 出力: 7 */

subtract(8, 5) /* 出力: 3 */

15.subtract(7) /* 出力: 8 */

multiply

2つ以上の数値を乗算する関数です。

第一引数:乗算される数値を指定します。

第二引数:乗算する数値を指定します。第一引数と第二引数を掛け合わせた結果が返されます。

4 * 3 /* 出力: 12 */

multiply(5, 6) /* 出力: 30 */

8.multiply(4) /* 出力: 32 */

mod

2つの数値の除算の余りを求める関数です。

第一引数:除算される数値(被除数)を指定します。

第二引数:除数となる数値を指定します。第一引数を第二引数で割った際の余りが返されます。

17 % 5 /* 出力: 2 */

mod(20, 6) /* 出力: 2 */

15.mod(4) /* 出力: 3 */

pow

べき乗(累乗)を計算する関数です。

第一引数:べき乗の底となる数値を指定します。

第二引数:指数(べき数)となる数値を指定します。第一引数を第二引数回掛け合わせた結果が返されます。

2 ^ 3 /* 出力: 8 */

pow(4, 2) /* 出力: 16 */

3.pow(3) /* 出力: 27 */

divide

2つの数値の商(割り算の結果)を求める関数です。

第一引数:除算される数値(被除数)を指定します。

第二引数:除数となる数値を指定します。第一引数を第二引数で割った結果が返されます。

10 / 2 /* 出力: 5 */

divide(15, 3) /* 出力: 5 */

20.divide(4) /* 出力: 5 */

equal

2つの値が等しいかどうかを比較する関数です。等しい場合は true を、そうでない場合は false を返します。

第一引数:比較する1つ目の値を指定します。数値、文字列、真偽値など、任意の型の値を指定できます。

第二引数:比較する2つ目の値を指定します。第一引数と同じ型の値を指定する必要があります。両者が等しい場合にtrueを返します。

5 == 5 /* 出力: true */

equal(10, 10) /* 出力: true */

"こんにちは".equal("こんにちは") /* 出力: true */

unequal

2つの値が等しくないかどうかを比較する関数です。等しくない場合は true を、等しい場合は false を返します。

第一引数:比較する1つ目の値を指定します。数値、文字列、真偽値など、任意の型の値を指定できます。

第二引数:比較する2つ目の値を指定します。第一引数と同じ型の値を指定する必要があります。両者が等しくない場合にtrueを返します。

5 != 3 /* 出力: true */

unequal(10, 8) /* 出力: true */

"こんにちは".unequal("世界") /* 出力: true */

より大きい

2つの値を比較し、1つ目の値が2つ目の値より大きいかどうかを判定する関数です。より大きい場合は true を、そうでない場合は false を返します。

8 > 5 /* 出力: true */

5 > 5 /* 出力: false */

以上

2つの値を比較し、1つ目の値が2つ目の値以上かどうかを判定する関数です。以上の場合は true を、そうでない場合は false を返します。

10 >= 10 /* 出力: true */

8 >= 5 /* 出力: true */

より小さい

2つの値を比較し、1つ目の値が2つ目の値より小さいかどうかを判定する関数です。より小さい場合は true を、そうでない場合は false を返します。

3 < 7 /* 出力: true */

5 < 5 /* 出力: false */

以下

2つの値を比較し、1つ目の値が2つ目の値以下かどうかを判定する関数です。以下の場合は true を、そうでない場合は false を返します。

5 <= 8 /* 出力: true */

7 <= 7 /* 出力: true */

and

複数の条件を論理積(AND)で結合する関数です。すべての条件が true の場合に true を、それ以外の場合は false を返します。

true and true /* 出力: true */

false and true /* 出力: false */

prop("スコア") > 80 and prop("出席率") > 0.8 /* 両方の条件を満たす場合のみ true */

or

複数の条件を論理和(OR)で結合する関数です。いずれかの条件が true の場合に true を、すべての条件が false の場合は false を返します。

true or false /* 出力: true */

false or false /* 出力: false */

prop("スコア") > 90 or prop("特別加点") == true /* いずれかの条件を満たす場合に true */

not

論理否定(NOT)を表す関数です。条件の真偽値を反転させ、true の場合は false を、false の場合は true を返します。

not true /* 出力: false */

!false /* 出力: true */

not(prop("完了") == true) /* 完了していない場合に true */

true

真偽値の true を表す定数です。論理演算や条件分岐で使用されます。

true /* 出力: true */

prop("完了") == true /* 完了している場合に true */

if(true, "完了", "未完了") /* 出力: "完了" */

false

真偽値の false を表す定数です。論理演算や条件分岐で使用されます。

false /* 出力: false */

prop("完了") == false /* 完了していない場合に true */

if(false, "完了", "未完了") /* 出力: "未完了" */

関数

if

条件分岐を行う関数です。

第一引数:条件分岐の判定に使用する真偽値を指定します。trueの場合は第二引数の値を、falseの場合は第三引数の値を返します。

第二引数:条件が true の場合に返す値を指定します。任意の型の値を指定できます。

第三引数:条件が false の場合に返す値を指定します。第二引数と同じ型の値を指定する必要があります。

if(prop("スコア") >= 80, "合格", "不合格") /* スコアが80以上なら合格、それ以外は不合格 */

if(prop("在庫数") > 0, "在庫あり", "在庫切れ") /* 在庫が0より大きい場合は在庫あり */

if(length(prop("名前")) == 0, "名無し", prop("名前")) /* 名前が空の場合は「名無し」を表示 */

ifs

複数の条件分岐を行う関数です。

第一引数:最初の条件式を指定します。この条件がtrueの場合は、次の引数の値が返されます。falseの場合は、次のペアの条件式の評価に進みます。

第二引数以降:条件と値のペアを指定します。条件がtrueの場合は、その値が返されます。falseの場合は次のペアの評価に進みます。

最終引数:デフォルト値を指定します。すべての条件がfalseの場合に返される値です。

ifs(
  prop("スコア") >= 90, "優",
  prop("スコア") >= 80, "良",
  prop("スコア") >= 70, "可",
  "不可"
) /* スコアに応じて評価を返す */

empty

値が空(null)かどうかを判定する関数です。値が空の場合は true を、そうでない場合は false を返します。

引数には、文字列やリスト、数値など、任意の型の値を指定できます。空の値としては、空文字列、空のリスト、未設定のプロパティなどが該当します。

empty(prop("メモ")) /* メモが空の場合は true */

empty([]) /* 空の配列の場合は true */

"".empty() /* 空文字列の場合は true */

length

文字列の長さ(リストの場合は要素数)を取得する関数です。空の文字列やリストの場合は0を返します。

length("こんにちは") /* 出力: 5 */

length(prop("タグ")) /* タグの数を返す */

"こんにちは".length() /* 出力: 5 */

substring

文字列から部分文字列を抽出する関数です。開始位置と長さを指定して、その範囲の文字列を取得します。

第一引数:元の文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:開始位置を指定します。0から始まる整数で、最初の文字の位置を表します。

第三引数:取得する文字数を指定します。正の整数で、開始位置から何文字取得するかを表します。

substring("こんにちは 世界", 0, 5) /* 出力: "こんにちは" */

"こんにちは世界".substring(0, 3) /* 出力: "こんにち" */

substring(prop("タイトル"), 0, 10) /* タイトルの最初の10文字を取得 */

contains

文字列に特定の部分文字列が含まれているかどうかを判定する関数です。含まれている場合は true を、含まれていない場合は false を返します。大文字と小文字は区別されます。

第一引数:検索対象の文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:検索する部分文字列を指定します。この文字列が第一引数の中に含まれているかどうかを判定します。

contains("こんにちは 世界", "世界") /* 出力: true */

"こんにちは世界".contains("世界") /* 出力: true */

contains(prop("タグ"), "重要") /* タグに「重要」が含まれている場合に true */

test

正規表現パターンに文字列が一致するかどうかを判定する関数です。一致する場合は true を、一致しない場合は false を返します。大文字と小文字は区別されます。

第一引数:検査対象の文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:正規表現パターンを指定します。JavaScriptの正規表現構文に従って記述します。

test("こんにちは123", "^[a-z]+[0-9]+$") /* 出力: true */

"abc@example.com".test("^[^@]+@[^@]+\.[^@]+$") /* メールアドレスの形式チェック */

test(prop("電話番号"), "^[0-9]{2,4}-[0-9]{2,4}-[0-9]{4}$") /* 電話番号の形式チェック */

match

正規表現パターンにマッチする部分文字列を抽出する関数です。マッチしない場合は空のリストを返します。

第一引数:検査対象の文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:正規表現パターンを指定します。JavaScriptの正規表現構文に従って記述します。

match("こんにちは123", "[0-9]+") /* 出力: ["123"] */

"abc123def456".match("[0-9]+") /* 出力: ["123", "456"] */

match(prop("商品コード"), "[A-Z]{2}[0-9]{4}") /* 商品コードから英字2文字+数字4文字を抽出 */

replace

文字列内の部分文字列を別の文字列に置換する関数です。最初に見つかった一致箇所のみを置換します。

第一引数:検査対象の文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:置換対象となる部分文字列(または正規表現パターン)を指定します。

第三引数:置換後の文字列を指定します。

replace("こんにちは 世界", "世界", "everyone") /* 出力: "こんにちは everyone" */

"123-456-789".replace("-", "") /* 出力: "123456-789" */

replace(prop("商品名"), "旧", "新") /* 商品名の「旧」を「新」に置換 */

replaceAll

文字列内のすべての一致箇所を置換する関数です。replaceとは異なり、見つかったすべての部分文字列が置換されます。

第一引数:検査対象の文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:置換対象となる部分文字列(または正規表現パターン)を指定します。

第三引数:置換後の文字列を指定します。

replaceAll("こんにちは こんにちは 世界", "こんにちは", "hi") /* 出力: "hi hi 世界" */

"123-456-789".replaceAll("-", "") /* 出力: "123456789" */

replaceAll(prop("説明文"), "です。", "である。") /* 説明文のすべての「です。」を「である。」に置換 */

lower

文字列をすべて小文字に変換する関数です。大文字を含む文字列を小文字に統一したい場合に使用します。

lower("こんにちは 世界") /* 出力: "こんにちは 世界" */

prop("タイトル").lower() /* タイトルを小文字に変換 */

lower("ABC123") /* 出力: "abc123" */

upper

文字列をすべて大文字に変換する関数です。小文字を含む文字列を大文字に統一したい場合に使用します。

upper("こんにちは 世界") /* 出力: "こんにちは 世界" */

"abc123".upper() /* 出力: "ABC123" */

upper(prop("コード")) /* コードを大文字に変換 */

repeat

文字列を指定した回数だけ繰り返す関数です。同じ文字列を複数回連結したい場合に使用します。

第一引数:繰り返す文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:繰り返す回数を指定します。正の整数で、文字列を何回繰り返すかを表します。

repeat("こんにちは ", 3) /* 出力: "こんにちは こんにちは こんにちは " */

"*".repeat(5) /* 出力: "*****" */

repeat(prop("記号"), 10) /* 記号を10回繰り返す */

URLを作成するための関数です。テキストとURLを組み合わせて、クリック可能なリンクを生成します。

第一引数:リンクのテキスト(表示文字列)を指定します。

第二引数:リンク先のURLを指定します。有効なURLである必要があります。

link("Notion", "https://www.notion.so") /* Notionへのリンクを作成 */

"詳細ページ".link(prop("URL")) /* URLプロパティを使用してリンクを作成 */

link(prop("タイトル"), "https://example.com") /* タイトルをリンクテキストとして使用 */

style

テキストのスタイルを設定する関数です。太字、斜体、取り消し線などの装飾を文字列に適用します。

第一引数:スタイルを適用する文字列を指定します。任意の文字列やプロパティの値を指定できます。

第二引数:適用するスタイルを指定します。bolditalicstrikethroughunderline のいずれかを指定します。

style("重要", "bold") /* 出力: 太字の「重要」 */

prop("タイトル").style("italic") /* タイトルを斜体に */

style(prop("状態"), "strikethrough") /* 状態に取り消し線を適用 */

unstyle

スタイルが適用された文字列からスタイルを削除する関数です。太字、斜体、取り消し線などの装飾を解除します。

unstyle(style("重要", "bold")) /* 出力: 「重要」(通常のテキスト) */

unstyle(prop("タイトル").style("italic")) /* タイトルの斜体を解除 */

prop("状態").style("strikethrough").unstyle() /* 取り消し線を解除 */

format

数値や日付、文字列などを指定した形式に変換する関数です。データを特定のフォーマットで表示したい場合に使用します。

第一引数:フォーマットする値を指定します。数値、日付、文字列など、変換対象となる値を指定します。

第二引数:フォーマット文字列を指定します。出力形式を定義する文字列を指定します。

format(123.456, "0.00") /* 出力: "123.46" */

format(now(), "YYYY-MM-DD") /* 現在の日付を「YYYY-MM-DD」形式で表示 */

format(prop("金額"), "¥#,##0") /* 金額を通貨形式でフォーマット */

min

複数の数値の中から最小値を取得する関数です。数値のリストや複数の数値を引数として受け取り、その中で最も小さい値を返します。

引数は可変長で、カンマ区切りで複数の数値を指定できます。また、リスト(配列)として数値を渡すこともできます。数値以外の値が含まれる場合はエラーとなります。

min(1, 2, 3) /* 出力: 1 */

min([10, 5, 8]) /* 出力: 5 */

min(prop("価格"), 1000) /* 価格と1000の小さい方を取得 */

max

複数の数値の中から最大値を取得する関数です。数値のリストや複数の数値を引数として受け取り、その中で最も大きい値を返します。

引数は可変長で、カンマ区切りで複数の数値を指定できます。また、リスト(配列)として数値を渡すこともできます。

max(1, 2, 3) /* 出力: 3 */

max([10, 5, 8]) /* 出力: 10 */

max(prop("売上"), prop("目標")) /* 売上と目標の大きい方を取得 */

sum

複数の数値の合計を計算する関数です。数値のリストや複数の数値を引数として受け取り、それらの合計値を返します。リスト内の値はすべて数値である必要があります。

引数は可変長で、カンマ区切りで複数の数値を指定できます。また、リスト(配列)として数値を渡すことも可能です。配列内の要素がすべて数値でない場合はエラーとなります。

sum(1, 2, 3) /* 出力: 6 */

sum([10, 20, 30]) /* 出力: 60 */

sum(prop("売上").filter(x => x > 1000)) /* 1000以上の売上の合計 */

median

複数の数値の中から中央値を取得する関数です。数値のリストや複数の数値を引数として受け取り、それらを昇順に並べた時の中央に位置する値を返します。データの偏りを考慮した代表値として使用されます。

引数は可変長で、カンマ区切りで複数の数値を指定できます。また、リスト(配列)として数値を渡すこともできます。データ数が偶数の場合は、中央に位置する2つの値の平均値が返されます。

median(1, 2, 3) /* 出力: 2 */

median([10, 20, 30, 40, 50]) /* 出力: 30 */

median(prop("成績").filter(x => x > 0)) /* 0より大きい成績の中央値 */

mean

複数の数値の平均値(算術平均)を計算する関数です。数値のリストや複数の数値を引数として受け取り、それらの合計値を要素数で割った値を返します。データの代表値として最も一般的に使用される統計量です。

引数は可変長で、カンマ区切りで複数の数値を指定できます。また、リスト(配列)として数値を渡すこともできます。

mean(1, 2, 3) /* 出力: 2 */

mean([10, 20, 30, 40]) /* 出力: 25 */

mean(prop("売上").filter(x => x >= 0)) /* 0以上の売上の平均値 */

abs

数値の絶対値を取得する関数です。負の数を正の数に変換し、正の数はそのまま返します。

主に計算結果の大きさを評価する際や、値の差分を求める場合に使用されます。

abs(-5) /* 出力: 5 */

abs(3) /* 出力: 3 */

abs(prop("収支")) /* 収支の絶対値を取得 */

round

数値を指定された小数点以下の桁数で四捨五入する関数です。端数処理や表示用の数値を整形する際によく使用されます。

第一引数:四捨五入する数値を指定します。整数や小数を指定できます。

第二引数(オプション):小数点以下の桁数を指定します。省略した場合は0となり、整数に丸められます。

round(3.14159) /* 出力: 3 */

round(3.14159, 2) /* 出力: 3.14 */

round(prop("単価") * 1.1) /* 税込価格を四捨五入 */

ceil

数値を切り上げる関数です。小数点以下の値を持つ数値を、その値以上の最小の整数に切り上げます。

ceil(3.14) /* 出力: 4 */

ceil(-3.14) /* 出力: -3 */

ceil(prop("必要個数") / 10) /* 10個単位で切り上げ */

floor

数値を切り下げる関数です。小数点以下の値を持つ数値を、その値以下の最大の整数に切り下げます。

floor(3.14) /* 出力: 3 */

floor(-3.14) /* 出力: -4 */

floor(prop("在庫数") / 100) /* 100個単位で切り下げ */

sqrt

数値の平方根(2乗根)を計算する関数です。負の数を入力した場合はエラーとなります。

sqrt(16) /* 出力: 4 */

sqrt(2) /* 出力: 1.4142... */

sqrt(prop("面積")) /* 正方形の一辺の長さを求める */

cbrt

数値の立方根(3乗根)を計算する関数です。負の数も入力として受け付けます。

cbrt(27) /* 出力: 3 */

cbrt(-8) /* 出力: -2 */

cbrt(prop("体積")) /* 立方体の一辺の長さを求める */

exp

指数関数(eの累乗)を計算する関数です。自然対数の底eを引数で指定された値で累乗した結果を返します。

exp(1) /* 出力: 2.718... (≈ e) */

exp(2) /* 出力: 7.389... */

exp(prop("成長率")) /* 指数関数的な成長を計算 */

ln

自然対数(底がeの対数)を計算する関数です。正の数値を引数として受け取り、その自然対数の値を返します。負の数や0を入力した場合はエラーとなります。

ln(1) /* 出力: 0 */

ln(e) /* 出力: 1 */

ln(prop("初期値") / prop("現在値")) /* 減少率を自然対数で表現 */

log10

常用対数(底が10の対数)を計算する関数です。正の数値を引数として受け取り、その常用対数の値を返します。負の数や0を入力した場合はエラーとなります。

log10(100) /* 出力: 2 */

log10(1000) /* 出力: 3 */

log10(prop("測定値")) /* 測定値を対数スケールで表現 */

log2

2を底とする対数(二進対数)を計算する関数です。正の数値を引数として受け取り、その2を底とする対数の値を返します。負の数や0を入力した場合はエラーとなります。

log2(8) /* 出力: 3 */

log2(1024) /* 出力: 10 */

log2(prop("ファイルサイズ")) /* バイト単位のサイズをビット数で表現 */

sign

数値の符号を判定する関数です。正の数の場合は1、負の数の場合は-1、0の場合は0を返します。

sign(5) /* 出力: 1 */

sign(-3) /* 出力: -1 */

sign(prop("収支差額")) /* 収支がプラスかマイナスか判定 */

pi

円周率(π)を表す定数です。幾何学的な計算や三角関数での計算に使用される重要な数学定数で、およそ3.14159…の値を持ちます。

pi() /* 出力: 3.14159... */

2 * pi() * prop("半径") /* 円周の長さを計算 */

pi() * pow(prop("半径"), 2) /* 円の面積を計算 */

e

自然対数の底(e)を表す定数です。指数関数や対数関数の計算に使用される重要な数学定数で、およそ2.71828…の値を持ちます。

e() /* 出力: 2.71828... */

exp(1) /* eの1乗を計算 */

ln(e()) /* 出力: 1 */

toNumber

文字列を数値に変換する関数です。数値として解釈できる文字列を数値型に変換します。変換できない場合はエラーとなります。

toNumber("123") /* 出力: 123 */

toNumber("-45.67") /* 出力: -45.67 */

toNumber(prop("価格表示")) /* 文字列の価格を数値に変換 */

now

現在の日時を返す関数です。この関数は呼び出された時点の日時を返し、データベースの自動更新やタイムスタンプの生成などに使用されます。

now() /* 現在の日時を取得 */

if(now() > prop("締切日"), "期限切れ", "期限内") /* 期限切れの判定 */

dateSubtract(now(), prop("開始日"), "days") /* 経過日数を計算 */

today

現在の日付を返す関数です。now()関数とは異なり、時刻の情報を含まず、日付のみを返します。

today() /* 現在の日付を取得 */

if(today() > prop("期限日"), "期限超過", "有効") /* 日付での判定 */

dateBetween(today(), prop("開始日"), "days") /* 日数の計算 */

minute

日付から分(0-59)を抽出する関数です。時刻を含む日付型の値から分の部分のみを取り出して数値として返します。

minute(now()) /* 現在時刻の分を取得 */

minute(prop("開始時刻")) /* 開始時刻から分を抽出 */

if(minute(now()) == 0, "正時です", "正時ではありません") /* 正時かどうかを判定 */

hour

日付から時間(0-23)を抽出する関数です。時刻を含む日付型の値から時間の部分のみを取り出して数値として返します。

hour(now()) /* 現在時刻の時間を取得 */

hour(prop("終了時刻")) /* 終了時刻から時間を抽出 */

if(hour(now()) >= 9 && hour(now()) < 17, "営業時間内", "営業時間外") /* 営業時間の判定 */

day

日付から曜日(0-6)を取得する関数です。日付型の値から曜日を数値として返します。返される数値は以下の通りです。

  • 0 = 日曜日
  • 1 = 月曜日
  • 2 = 火曜日
  • 3 = 水曜日
  • 4 = 木曜日
  • 5 = 金曜日
  • 6 = 土曜日
day(now()) /* 現在の曜日を取得(0-6) */

day(prop("予定日")) /* 予定日の曜日を取得 */

if(day(now()) == 0 || day(now()) == 6, "休業日", "営業日") /* 週末かどうかを判定 */

date

日付から日(1-31)を抽出する関数です。日付型の値から日付の部分のみを取り出して数値として返します。

day(now()) /* 現在の日付を取得 */

day(prop("締切日")) /* 締切日から日を抽出 */

if(day(now()) == 1, "月初です", "月初ではありません") /* 月初かどうかを判定 */

week

日付から週番号(1-53)を取得する関数です。日付型の値からその年の何週目かを数値として返します。

week(now()) /* 現在の週番号を取得 */

week(prop("開始日")) /* 開始日の週番号を取得 */

if(week(now()) == week(prop("締切日")), "今週が締切週です", "締切週ではありません") /* 同じ週かどうかを判定 */

month

日付から月(1-12)を抽出する関数です。日付型の値から月の部分のみを取り出して数値として返します。

month(now()) /* 現在の月を取得 */

month(prop("予定日")) /* 予定日から月を抽出 */

if(month(now()) == 12, "年末です", "年末ではありません") /* 12月かどうかを判定 */

year

日付から年を抽出する関数です。日付型の値から年の部分のみを取り出して数値として返します。

year(now()) /* 現在の年を取得 */

year(prop("契約日")) /* 契約日から年を抽出 */

if(year(now()) != year(prop("更新日")), "今年度更新済み", "未更新") /* 年の比較による更新状態の判定 */

dateAdd

日付に指定した単位(年、月、日など)を加算する関数です。日付型の値に対して、指定した期間を加算した新しい日付を返します。

第一引数:基準となる日付を指定します。now()today() などの関数、または prop() で参照した日付型のプロパティを指定できます。

第二引数:加算する期間の数値を指定します。正の値で加算、負の値で減算となります。

第三引数:期間の単位を指定します。yearsquartersmonthsweeksdayshoursminutes が指定可能です。

dateAdd(now(), 7, "days") /* 1週間後の日時を取得 */

dateAdd(prop("開始日"), 1, "months") /* 開始日の1ヶ月後を計算 */

dateAdd(today(), 3, "years") /* 3年後の日付を取得 */

dateSubtract

2つの日付の差分を計算する関数です。dateAddの逆の機能を提供し、日付型の値から指定した期間を減算した新しい日付を返します。引数の構造はdateAdd関数と同様です。

dateSubtract(now(), 1, "weeks") /* 1週間前の日時を取得 */

dateSubtract(prop("終了日"), 2, "months") /* 終了日の2ヶ月前を計算 */

dateSubtract(today(), 30, "days") /* 30日前の日付を取得 */

dateBetween

2つの日付の差をミリ秒単位で計算します。

第一引数:日時

第二引数:日時

第三引数:差分を計算する単位を指定します。yearsquartersmonthsweeksdayshoursminutes が指定可能です。

dateBetween(now(), prop("開始日"), "days") /* 開始日から現在までの日数を計算 */

dateBetween(prop("終了日"), prop("開始日"), "months") /* 期間を月単位で計算 */

if(dateBetween(now(), prop("期限日"), "hours") < 24, "期限間近", "余裕あり") /* 期限まで24時間未満かを判定 */

dateRange

開始日と終了日から日付範囲を返します。

第一引数:開始日

第二引数:終了日

dateRange(prop("開始日"), prop("終了日")) /* 出力: 2024年11月23日 → 2024年11月27日 */

prop("開始日").dateRange(prop("終了日")) /* 出力: 2024年11月23日 → 2024年11月27日 */

dateStart

日付範囲の開始日を取得する関数です。日付範囲型の値から開始日のみを取り出して日付型として返します。

dateStart(prop("期間")) /* 期間の開始日を取得 */

dateStart(dateRange(prop("開始日"), prop("終了日"))) /* 日付範囲から開始日を抽出 */

if(dateStart(prop("期間")) == today(), "今日が開始日です", "開始日ではありません") /* 開始日かどうかを判定 */

dateEnd

日付範囲の終了日を取得する関数です。日付範囲型の値から終了日のみを取り出して日付型として返します。

dateEnd(prop("期間")) /* 期間の終了日を取得 */

dateEnd(dateRange(prop("開始日"), prop("終了日"))) /* 日付範囲から終了日を抽出 */

if(dateEnd(prop("期間")) == today(), "今日が期限日です", "期限日ではありません") /* 期限日かどうかを判定 */

timestamp

日付をUNIXタイムスタンプ(1970年1月1日からの経過ミリ秒数)に変換する関数です。日付型の値をミリ秒単位の数値として返します。

timestamp(now()) /* 現在時刻のタイムスタンプを取得 */

timestamp(prop("作成日")) /* 作成日のタイムスタンプを取得 */

if(timestamp(now()) - timestamp(prop("更新日")) > 86400000, "24時間以上経過", "最近の更新") /* 更新からの経過時間を判定 */

fromTimestamp

UNIXタイムスタンプをNotionの日付型に変換する関数です。ミリ秒単位の数値を日付型の値として返します。

fromTimestamp(1700726400000) /* タイムスタンプから日付に変換 */

fromTimestamp(timestamp(now())) /* 現在時刻をタイムスタンプ経由で日付に変換 */

if(fromTimestamp(prop("タイムスタンプ")) > now(), "未来の日時です", "過去の日時です") /* タイムスタンプの日時比較 */

formatDate

日付を指定した形式の文字列に変換する関数です。日付型の値を任意のフォーマットで文字列として返します。

第一引数:日時

第二引数:フォーマット文字列

💡 フォーマット文字列


  • YYYY: 4桁の年(例:2024)
  • YY: 2桁の年(例:24)
  • MM: 2桁の月(例:01-12)
  • M: 1-2桁の月(例:1-12)
  • DD: 2桁の日(例:01-31)
  • D: 1-2桁の日(例:1-31)
  • HH: 24時間形式の時(例:00-23)
  • H: 24時間形式の時(例:0-23)
  • hh: 12時間形式の時(例:01-12)
  • h: 12時間形式の時(例:1-12)
  • mm: 分(例:00-59)
  • m: 分(例:0-59)
  • ss: 秒(例:00-59)
  • s: 秒(例:0-59)

これらの文字列は自由に組み合わせることができ、区切り文字(年、月、日、:など)と共に使用できます。

例:

  • YYYY年MM月DD日 → 2024年11月23日
  • YYYY-MM-DD HH:mm:ss → 2024-11-23 18:10:30
  • M/D/YY → 11/23/24
  • DD/MM/YYYY → 23/11/2024
formatDate(now(), "YYYY-MM-DD") /* 現在の日付を「2024-11-23」形式で出力 */

formatDate(prop("開始日"), "MM月DD日") /* 開始日を「11月23日」形式で出力 */

formatDate(now(), "YYYY年MM月DD日 HH:mm") /* 現在の日時を「2024年11月23日 18:06」形式で出力 */

parseDate

文字列から日付を解析して日付型に変換する関数です。様々な形式の日付文字列を Notion の日付型として返します。

parseDate("2024-11-23") /* 「2024-11-23」形式の文字列を日付に変換 */

if(parseDate(prop("2024-11-23")) > now(), "未来の日付です", "過去の日付です") /* 文字列から変換した日付の比較 */

name

ユーザーまたはページの名前を取得する関数です。ユーザー型やページ型の値から名前を文字列として返します。

name(prop("担当者")) /* 担当者の名前を取得 */

name(prop("リレーション")) /* リレーションで参照しているページのタイトルを取得 */

if(name(prop("作成者")) == "とうまろ", "自分が作成", "他者が作成") /* 作成者の名前を比較 */

email

ユーザーのメールアドレスを取得する関数です。ユーザー型の値からメールアドレスを文字列として返します。

email(prop("担当者")) /* 担当者のメールアドレスを取得 */

if(email(prop("ユーザー")) == "example@mail.com", "対象ユーザーです", "対象外ユーザーです") /* メールアドレスの一致を確認 */

at

リストや文字列から指定したインデックスの要素を取得する関数です。配列型やマルチセレクト型、文字列型の値から特定の位置の要素を返します。

第一引数:対象となるリストや文字列

第二引数:取得したい要素のインデックス(0から始まる整数値、負の値も可)

at(prop("マルチセレクト"), 0) /* 最初の選択肢を取得 */

at("こんにちは", 1) /* 文字列の2文字目を取得("ん") */

at(prop("リスト"), -1) /* リストの最後の要素を取得("は") */

first

リストや文字列の最初の要素を取得する関数です。配列型やマルチセレクト型、文字列型の値から先頭の要素を返します。

first(prop("マルチセレクト")) /* マルチセレクトの最初の選択肢を取得 */

first("こんにちは") /* 文字列の最初の文字を取得("こ") */

if(first(prop("タグ")) == "重要", "優先タスク", "通常タスク") /* タグの最初の要素で判定 */

last

リストや文字列の最後の要素を取得する関数です。配列型やマルチセレクト型、文字列型の値から末尾の要素を返します。

last(prop("マルチセレクト")) /* マルチセレクトの最後の選択肢を取得 */

last("こんにちは") /* 文字列の最後の文字を取得("は") */

if(last(prop("タグ")) == "完了", "終了タスク", "進行中タスク") /* タグの最後の要素で判定 */

slice

リストや文字列の一部を切り出す関数です。配列型やマルチセレクト型、文字列型の値から指定した範囲の要素を抽出して返します。

第一引数:対象となるリストや文字列

第二引数:開始位置のインデックス(0から始まる整数値、負の値も可)

第三引数(オプション):終了位置のインデックス

slice(prop("マルチセレクト"), 1, 3) /* 2番目から4番目の選択肢を取得 */

slice("こんにちは 世界", 0, 5) /* 文字列の最初の5文字を取得("こんにちは") */

slice(prop("タグ"), 1) /* 2番目以降のすべてのタグを取得 */

concat

複数のリストや文字列を結合する関数です。配列型やマルチセレクト型、文字列型の値を連結して新しい値を返します。

第一引数:結合する最初のリスト、文字列、またはマルチセレクト

第二引数:結合する2番目のリスト、文字列、またはマルチセレクト

第三引数以降(オプション):さらに結合する追加の値

concat(prop("タグ1"), prop("タグ2")) /* 2つのマルチセレクトを結合 */

concat("こんにちは ", "世界") /* 文字列を結合("こんにちは 世界") */

concat(prop("リスト1"), [1, 2, 3]) /* リストを結合 */

sort

リストを昇順で並び替える関数です。配列型やマルチセレクト型の値を並び替えて新しいリストとして返します。

sort(prop("マルチセレクト")) /* マルチセレクトの選択肢を昇順で並び替え */

sort([3, 1, 4, 1, 5]) /* 数値リストを昇順で並び替え([1, 1, 3, 4, 5]) */

sort(["りんご3", "りんご1", "りんご2"]) /* 文字列リストを昇順で並び替え(["りんご1", "りんご2", "りんご3"]) */

reverse

リストの要素の順序を逆転させる関数です。配列型やマルチセレクト型の値の順序を反転して新しいリストとして返します。

reverse(prop("マルチセレクト")) /* マルチセレクトの選択肢を逆順に並び替え */

reverse([1, 2, 3, 4, 5]) /* 数値リストを逆順に並び替え([5, 4, 3, 2, 1]) */

reverse(["A", "B", "C"]) /* 文字列リストを逆順に並び替え(["C", "B", "A"]) */

join

リストの要素を区切り文字で結合して文字列に変換する関数です。配列型やマルチセレクト型の値を指定した区切り文字で連結して文字列として返します。

第一引数:結合するリスト、またはマルチセレクト

第二引数:区切り文字として使用する文字列

join(prop("マルチセレクト"), ", ") /* マルチセレクトの選択肢をカンマで区切って結合 */

join([1, 2, 3], "-") /* 数値リストをハイフンで区切って結合("1-2-3") */

join(["りんご", "バナナ", "オレンジ"], " and ") /* 文字列リストを"and"で区切って結合("りんご and バナナ and オレンジ") */

split

文字列を指定した区切り文字で分割してリストに変換する関数です。文字列型の値を指定した区切り文字で分割して配列として返します。

第一引数:分割する文字列

第二引数:区切り文字として使用する文字列

split("りんご,バナナ,オレンジ", ",") /* カンマで区切られた文字列をリストに分割(["りんご", "バナナ", "オレンジ"]) */

split("1-2-3", "-") /* ハイフンで区切られた文字列を分割(["1", "2", "3"]) */

split("こんにちは 世界", " ") /* スペースで文字列を分割(["こんにちは", "世界"]) */

unique

リストから重複する要素を除去して、一意な値のみを含む新しいリストを作成する関数です。配列型やマルチセレクト型の値から重複を排除して新しいリストとして返します。

unique(prop("マルチセレクト")) /* マルチセレクトから重複する選択肢を除去 */

unique([1, 2, 2, 3, 3, 3]) /* 数値リストから重複を除去([1, 2, 3]) */

unique(["りんご", "バナナ", "りんご"]) /* 文字列リストから重複を除去(["りんご", "バナナ"]) */

includes

リストや文字列に特定の要素が含まれているかどうかを確認する関数です。配列型やマルチセレクト型、文字列型の値に対して指定した要素が含まれているかを真偽値として返します。

第一引数:検索対象となるリストや文字列

第二引数:探す要素や部分文字列

includes(prop("マルチセレクト"), "重要") /* マルチセレクトに"重要"が含まれているか確認 */

includes([1, 2, 3, 4, 5], 3) /* 数値リストに3が含まれているか確認 */

includes("こんにちは 世界", "世界") /* 文字列に"世界"が含まれているか確認(true) */

find

リストや文字列から特定の条件に一致する最初の要素を検索する関数です。配列型やマルチセレクト型、文字列型の値から指定した条件に合致する最初の要素を返します。

第一引数:検索対象となるリストや文字列

第二引数:検索条件を指定する式

find(["a", "b", "c"], current == "b") /* リストから"b"を検索 */

find([100, 200, 300], current > 100) /* 100より大きい要素を検索([200, 300]) */

findIndex

リストや文字列から特定の条件に一致する要素のインデックスを検索する関数です。配列型やマルチセレクト型、文字列型の値から指定した条件に合致する最初の要素の位置(0から始まる整数値)を返します。見つからない場合は-1を返します。

第一引数:検索対象となるリストや文字列

第二引数:検索条件を指定する式

findIndex(["a", "b", "c"], current == "b") /* "b"のインデックスを検索(1) */

findIndex([1, 2, 3], current > 2) /* 2より大きい要素のインデックスを検索(3) */

findIndex(prop("マルチセレクト"), current == "重要") /* "重要"のインデックスを検索 */

filter

リストから指定した条件に一致する要素のみを抽出する関数です。配列型やマルチセレクト型の値から条件に合致する要素だけを含む新しいリストとして返します。

第一引数:フィルタリング対象となるリスト

第二引数:フィルタリング条件を指定する式

filter([1, 2, 3, 4, 5], current > 3) /* 3より大きい要素を抽出([4, 5]) */

filter(prop("マルチセレクト"), current != "低") /* "低"以外の選択肢を抽出 */

filter(["りんご", "バナナ", "パイナップル"], length(current) > 5) /* 文字数が5より多い要素を抽出(["パイナップル"]) */

some

リストの要素のうち、少なくとも1つが指定した条件を満たすかどうかを確認する関数です。配列型やマルチセレクト型の値に対して、条件に合致する要素が1つでもあれば真を返し、1つもない場合は偽を返します。

第一引数:条件を確認するリスト

第二引数:各要素に対して評価する条件式

some([1, 2, 3, 4, 5], current > 3) /* 3より大きい要素が1つでもあるか確認(true) */

some(prop("マルチセレクト"), current == "高") /* "高"が含まれているか確認 */

some(["りんご", "バナナ"], length(current) > 10) /* 文字数が10より多い要素があるか確認(false) */

every

リストのすべての要素が指定した条件を満たすかどうかを確認する関数です。配列型やマルチセレクト型の値に対して、すべての要素が条件に合致する場合は真を返し、1つでも合致しない要素がある場合は偽を返します。

第一引数:条件を確認するリスト

第二引数:各要素に対して評価する条件式

every([1, 2, 3, 4, 5], current < 6) /* すべての要素が6未満か確認(true) */

every(prop("マルチセレクト"), length(current) > 0) /* すべての選択肢が空でないか確認 */

every(["猫", "犬", "ねずみ"], length(current) == 3) /* すべての要素が3文字か確認(false) */

map

リストの各要素に対して指定した処理を適用し、その結果から新しいリストを作成する関数です。配列型やマルチセレクト型の値の各要素に対して変換処理を行い、その結果を新しいリストとして返します。

第一引数:変換対象となるリスト

第二引数:各要素に適用する変換式

map([1, 2, 3], current * 2) /* 各要素を2倍にする([2, 4, 6]) */

map(["a", "b", "c"], upper(current)) /* 各要素を大文字に変換(["A", "B", "C"]) */

map(prop("マルチセレクト"), length(current)) /* 各選択肢の文字数をリストとして取得 */

flat

ネストされたリスト(配列の配列)を1次元のリストに平坦化する関数です。多次元配列を1次元配列に変換して返します。深さ1レベルまでの平坦化のみに対応しています。

flat([[1, 2], [3, 4]]) /* 2次元配列を1次元配列に変換([1, 2, 3, 4]) */

flat([["a", "b"], ["c"]]) /* 文字列の2次元配列を平坦化(["a", "b", "c"]) */

id

ページやデータベースを一意に識別するIDを取得する関数です。ページプロパティやデータベースプロパティから、そのページやデータベースの一意のIDを文字列として返します。

id(prop("リレーション")) /* リレーションプロパティのページIDを取得 */

id(prop("作成者")) /* 作成者のユーザーIDを取得 */

let

式の中で変数を定義して使用するための関数です。定義した変数は、その式の中でのみ有効です。複雑な計算式を簡潔に書くことができ、同じ値を複数回使用する場合に特に便利です。

第一引数:変数名

第二引数:変数に代入する値

第三引数:変数を使用する式

let(x, 10, x * 2) /* xを10に設定し、その値を2倍する(20) */

let(name, "とうまろ", "こんにちは, " + name + "!") /* nameを設定し、挨拶文を作成(こんにちはとうまろ!) */

lets

複数の変数を定義して使用するための関数です。letの拡張版で、複数の変数を一度に定義できます。各変数は順番に評価され、後続の変数定義で前の変数を参照することができます。

lets(a, "こんにちは", b, "世界", a + " " + b) /* 変数aとbを定義し、"こんにちは 世界"を生成 */

lets(base, 3, height, 8, base * height / 2) /* 三角形の面積を計算:(3 * 8) / 2 */

padStart

文字列の先頭に指定した文字を追加してパディングする関数です。文字列が指定した長さに満たない場合、その差分を埋めるように文字を追加します。

第一引数:パディング対象の文字列

第二引数:文字列長

第三引数(オプション):パディングに使用する文字(省略時は空白)

padStart("123", 5, "0") /* 文字列の先頭に0を追加して5文字にする("00123") */

padStart("abc", 6) /* 文字列の先頭に空白を追加して6文字にする("   abc") */

padEnd

文字列の末尾に指定した文字を追加してパディングする関数です。文字列が指定した長さに満たない場合、その差分を埋めるように文字を末尾に追加します。

第一引数:パディング対象の文字列

第二引数:文字列長

第三引数(オプション):パディングに使用する文字(省略時は空白)

padEnd("123", 5, "0") /* 文字列の末尾に0を追加して5文字にする("12300") */

padEnd("abc", 6) /* 文字列の末尾に空白を追加して6文字にする("abc   ") */