Notionの関数(数式)の使い方|初心者向けにやさしく解説
Notionの関数(数式)は、一見むずかしそうに見えますが、コツはひとつだけです。関数とは「その行についての小さな質問」だと考えること。「このタスクは期限切れ?」「合計金額はいくら?」「締切まであと何日?」——こう考えれば、ぐっと簡単になります。
この記事はゼロから始めます。基本の書き方、実務の9割をカバーするいくつかの関数、そして今すぐ使える5つの例を紹介します。
関数はどこにある?
関数は、Notionのデータベースの中のプロパティの種類のひとつです。追加する手順は次のとおりです。
- データベースを開きます(学ぶ間はテーブル表示が見やすいです)。
- プロパティ行の右端の + をクリックして、新しいプロパティを追加します。
- 種類として 「関数」(英語版では Formula)を選びます。
- そのプロパティをクリックし、「関数を編集」 で数式エディタを開きます。
関数は必ず1行ずつ計算し、その行の他のプロパティの値を読み取れます。
覚えるべき書き方はこれだけ
他のプロパティの値を使うには、こう書きます。
prop("プロパティ名")
カッコ内の名前は、プロパティ名と完全に一致させる必要があります。大文字・小文字・スペースまで含めてです。prop("締切") は動きますが、prop("しめきり") は動きません。初心者のエラーの大半はこれが原因です。
計算をする
数値プロパティは電卓のように扱えます。
prop("単価") * prop("数量")
+(足す)、-(引く)、*(かける)、/(わる)とカッコを、算数とまったく同じように使えます。単価と数量の列があれば、この式でどちらかを変えるたびに更新される「小計」が手に入ります。
if で「はい/いいえ」を判定する
if 関数は主役級の存在です。読み方はこうです。
if(条件, 真のときの値, 偽のときの値)
たとえば、完了チェックボックスに応じてチェック印か空欄を表示するには、
if(prop("完了"), "✅", "⬜")
条件には ==(等しい)、!=(等しくない)、>、<、>=、<= といった比較を使います。
日付をあつかう
日付を使い始めると、関数が一気に便利になります。now() は今日の日付と時刻、dateBetween は2つの日付の差を数えます。
dateBetween(prop("締切"), now(), "days")
これで締切と今日の間の日数が返ります。if と組み合わせれば、期限切れを目立たせられます(下の例3)。
今すぐコピペできる5つの関数
1. 小計
prop("単価") * prop("数量")
2. 進捗をパーセント表示
完了数と全体数を管理しているなら、
format(round(prop("完了数") / prop("全体数") * 100)) + "%"
round で長い小数を消し、format で数値を文字に変換してから % をつなげます。これで 74.9999% ではなく 75% と表示できます。(Notionでは数値と文字を + でつなぐ前に、format で数値を文字に変えるのがポイントです。)
3. 期限切れフラグ
if(prop("締切") < now(), "🔴 期限切れ", "🟢 順調")
4. 締切までの残り日数
dateBetween(prop("締切"), now(), "days")
正の数なら残り日数、負の数なら過ぎた日数です。
5. 2つの列から氏名をつくる
prop("姓") + " " + prop("名")
+ で文字をつなぎ、真ん中の " " でスペースを入れます。
エラー表示を直す
数式が赤いエラーになったら、次の順で確認します。
- プロパティ名の打ち間違い。
prop("...")の名前は完全一致が必要です。 - 種類の不一致。 文字どうしは掛け算できません。数値の計算は数値プロパティで。
- カッコの閉じ忘れ。
(の数だけ)が必要です。
次のステップ
関数は、リレーションで結ばれた別のデータベースの値を読めるようになると、さらに強力になります。たとえば「ある取引先に紐づくすべての入金を合計する」といったことです。それを実現するのがリレーションとロールアップです。関数に慣れたら、次はNotionのリレーションとロールアップ徹底解説を読み、NotionでCRMを作る手順で実際に何か作ってみましょう。
まずは上の例1か例3から。10分コピペして少しいじるだけで、読むより早く身につきます。