CHEAT SHEET
Notion数式チートシート
Notionの数式(フォーミュラ)でよく使う関数を、日付・テキスト・数値・論理・リスト別に用途と例で一覧。残り日数や進捗率など、コピペで使える実用テンプレ付きです。
日付
| now() 現在の日時 | now() |
| dateBetween(a, b, 単位) a − b の差("days"/"hours"/"minutes"/"months"…) | dateBetween(prop("期限"), now(), "days") |
| dateAdd(日付, n, 単位) 日付にnを足す | dateAdd(prop("開始"), 7, "days") |
| dateSubtract(日付, n, 単位) 日付からnを引く | dateSubtract(prop("期限"), 3, "days") |
| formatDate(日付, 書式) 表示形式を指定("YYYY/MM/DD" など) | formatDate(prop("期限"), "M月D日") |
| dateStart / dateEnd(日付) 期間プロパティの開始/終了を取り出す | dateStart(prop("期間")) |
| timestamp(日付) ミリ秒のタイムスタンプに変換 | timestamp(now()) |
| fromTimestamp(数値) タイムスタンプを日付に変換 | fromTimestamp(prop("UNIX時間")) |
テキスト
| concat(a, b, …) 文字列を連結 | concat(prop("姓"), " ", prop("名")) |
| join(区切り, a, b, …) 区切り文字で連結 | join(" / ", prop("タグ1"), prop("タグ2")) |
| format(値) 数値などを文字列に変換 | format(prop("金額")) |
| length(テキスト) 文字数 | length(prop("メモ")) |
| replaceAll(text, 対象, 置換) 一致箇所をすべて置換 | replaceAll(prop("電話"), "-", "") |
| contains(text, 部分) 含むかどうか(true/false) | contains(prop("メール"), "@") |
| lower / upper(text) 小文字/大文字化 | lower(prop("コード")) |
| slice(text, 開始, 終了) 部分文字列を取り出す | slice(prop("コード"), 0, 3) |
| split(text, 区切り) 区切りで分割(リスト化) | split(prop("タグ"), ",") |
| test(text, 正規表現) パターンに一致するか(true/false) | test(prop("メール"), "@") |
数値
| round(x) 四捨五入 | round(prop("率") * 100) |
| floor / ceil(x) 切り捨て / 切り上げ | ceil(prop("時間") / 8) |
| abs(x) 絶対値 | abs(prop("差分")) |
| max / min(a, b) 最大 / 最小 | max(prop("A"), prop("B")) |
| mod(a, b) 余り | mod(prop("番号"), 2) |
| pow(a, b) / sqrt(x) べき乗 / 平方根 | pow(2, 10) |
| toNumber(値) 文字列などを数値に変換 | toNumber(prop("文字数値")) |
| sign(x) 符号(1 / 0 / -1) | sign(prop("差分")) |
論理・条件分岐
| if(条件, 真, 偽) 条件分岐の基本 | if(prop("在庫") > 0, "あり", "なし") |
| and / or / not 複数条件(&& / || / ! も可) | if(and(prop("A"), prop("B")), "両方", "") |
| empty(値) 空かどうか | if(empty(prop("担当")), "未割当", prop("担当")) |
| 比較演算子 == != > < >= <= | prop("Status") == "完了" |
リスト・ロールアップ
| sum / mean(リスト) 合計 / 平均 | sum(prop("明細金額")) |
| length(リスト) 件数 | length(prop("関連タスク")) |
| map(リスト, 式) 各要素を変換 | prop("金額").map(current * 1.1) |
| filter(リスト, 条件) 条件で絞る | prop("タスク").filter(current.prop("完了")) |
| includes(リスト, 値) 含むか | prop("タグ").includes("重要") |
TEMPLATES
コピペで使える実用テンプレ
「数式」プロパティに貼って、列名を自分のものに置き換えるだけ。
期限までの残り日数
dateBetween(prop("期限"), now(), "days")マイナスなら期限超過。数値プロパティのように使えます。
期限超過フラグ
if(dateBetween(prop("期限"), now(), "days") < 0, "⚠️ 超過", "")未対応で期限を過ぎた行に警告を表示。ステータス条件も足せます。
進捗率(%表示)
format(round(prop("完了数") / prop("総数") * 100)) + "%"ロールアップの件数から進捗率を計算。0除算に注意。
ステータスに応じたアイコン
if(prop("Status") == "完了", "✅", if(prop("Status") == "進行中", "🟡", "⚪️"))if を入れ子にして多分岐。一覧の視認性が上がります。
よくある質問
Notionの数式(フォーミュラ)はどこで使いますか?
データベースに「数式」タイプのプロパティを追加すると、他のプロパティを参照して計算・判定した結果を表示できます。残り日数、進捗率、条件付きのラベルなど、手入力せずに自動で更新される列を作れます。
他のプロパティを参照するには?
prop("プロパティ名") で参照します。式の中では列名の代わりにこの形で指定します(例:prop("期限"))。日付やロールアップもそのまま参照できます。
数式の仕様は変わりますか?
Notionの数式は改定されることがあり、関数名や書き方が更新される場合があります。本ページは執筆時点の定番関数をまとめたものです。最新の挙動はNotion公式のヘルプで確認してください。