
Notionを使っていると、データベースをもっと便利にしたいと思う瞬間がありますよね。特にNotionの関数(Formula)機能は、最初は難しそうに感じるかもしれませんが、使いこなせば日々のタスク管理や情報整理が劇的に楽になります。今回のアップデートで関数2.0となり、以前よりも直感的に記述できるようになりました。この記事では、基本的な使い方からif関数による条件分岐、日付や期間の計算、さらにはテキスト結合といった応用まで、幅広く解説していきます。
- Notion関数2.0の基本構文と便利なドット記法の使い方がわかる
- if関数や日付計算を使った自動化ロジックの組み方が理解できる
- リレーション先のデータをロールアップなしで集計するテクニックが身につく
- プログレスバーや文字装飾を使ってデータベースの見た目を整えられる
Notion関数の基礎とFormula 2.0の進化
これまでのNotionの関数はExcelなどの関数に慣れている人でも少し取っつきにくい印象がありましたが、バージョン2.0になって「書きやすさ」と「読みやすさ」が格段に向上しました。ここでは、新しくなったエディタの特徴や、最初に覚えておきたい基本的なデータ型、そして以前とは少し変わった記述のルールについて、私自身の体験も交えながら見ていきましょう。
最新のNotion関数2.0の使い方を解説
まずは新しい数式エディタの画面に慣れていきましょう。以前は狭い一行のボックスに長い数式を詰め込んでいたため、少し複雑になると「どこで間違えたのかわからない」という状態になりがちでした。しかし、2.0からはエディタが広がり、改行やインデント(字下げ)が可能になっています。
例えば、複雑な計算をする際も、以下のように行を分けて書くことができます。Shift+Enterキーで改行できるので、ロジックごとに整理しやすくなりました。
【数式エディタの進化ポイント】
- 長い数式を複数行に分けて記述できるため、構造が見やすい
/* コメント */という形式で、数式の意味をメモとして残せる- 入力中にエラー箇所がリアルタイムでハイライトされる
- 計算結果のプレビューが即座に表示される
また、プロパティを選ぶと灰色の「トークン」として表示されるようになりました。これにより、もし後からプロパティ名を変更しても、数式内の参照が自動的に追従してくれます。これは地味ですが、運用の手間を大きく減らしてくれる嬉しい改善点ですね。
ドット記法で記述するメソッドチェーン
数式を組む上で避けて通れないのが演算子と関数です。2.0では、JavaScriptのような「メソッドチェーン(ドット記法)」と呼ばれる書き方ができるようになりました。これまでは関数の中に関数を入れて…と、カッコが何重にもなる「入れ子構造」が基本でしたが、今は左から右へ流れるように記述できます。
例えば、あるプロパティに1を足して、さらに四捨五入する場合、従来と現在ではこれくらい書き心地が違います。
| 従来の書き方 | 2.0の書き方(ドット記法) |
|---|---|
| round(add(prop("数値"), 1)) | prop("数値").add(1).round() |
このように、「対象のデータ」に対して「.(ドット)」で「やりたい処理」をつなげていくイメージです。もちろん、従来の四則演算(+, -, *, /)もそのまま使えます。まずは、足し算や引き算といったシンプルな計算から始めて、このドット記法に慣れていくのがおすすめです。
変数を使えるletとlets関数の仕組み
Notion関数2.0の大きな目玉機能の一つが、letおよびlets関数による「変数」の導入です。これまでは、同じ計算結果を何度も使う場合、その都度同じ数式を書く必要があり、コードが長くなりがちでした。しかし、変数を使えば一度定義した計算結果に名前を付けて、後から何度でも再利用できます。
例えば、商品価格に消費税を加えた金額を計算し、そこから割引をするようなケースを考えてみましょう。
このように、最初に「価格」や「税率」を変数として定義しておけば、計算ロジックが非常にスッキリします。もし税率が変わっても、変数の定義部分だけを修正すれば良いので、メンテナンスも楽になります。
ifよりも便利なifs関数による条件分岐
「もし〜ならA、そうでなければB」という条件分岐は、タスク管理などで非常に重宝します。これまではif()関数を何重にも重ねて書いていましたが、2.0からはifs()という新しい関数が登場し、複数の条件をスッキリ書けるようになりました。
例えば、「進捗率が100%なら完了、未着手なら未対応、それ以外は進行中」というロジックを組む場合を考えてみましょう。
このように、条件と結果を順番に並べていくだけで記述できます。「ifs」を使うことで、カッコの数を数えるストレスから解放されるのは大きなメリットです。条件分岐は自動化の要なので、ぜひマスターしておきたい機能の一つですね。
よく使う基本的な関数一覧まとめ
数多くある関数の中でも、日常的に特によく使うものをピックアップしました。まずはこれらを覚えておくだけで、かなりのことができるようになります。
| 関数名 | 役割 | 使用例 |
|---|---|---|
| format() | 数値などをテキストに変換 | prop("金額").format() |
| dateBetween() | 2つの日付の差を計算 | dateBetween(now(), prop("日付"), "days") |
| contains() | 特定の文字が含まれるか判定 | prop("名前").contains("様") |
| empty() | 空欄かどうかを判定 | prop("メモ").empty() |
Notion関数を活用した応用テクニック
基礎を押さえたところで、ここからは一歩進んだ応用編です。Formula 2.0の真骨頂である「リスト操作」や「変数の定義」を活用することで、これまでロールアップ機能や複雑なリレーションに頼っていた処理を、たった一つの数式プロパティで実現できるようになります。実務ですぐに使えるテクニックを見ていきましょう。
リスト操作でリレーションデータを集計
Notion関数2.0最大の革命とも言えるのが、このmap関数です。これは、リレーションで紐づいている「複数のデータ(リスト)」を一つずつ取り出して処理できる機能です。
例えば、「プロジェクト」データベースに紐づく「タスク」たちの名前を一覧で出したい時、これまでは単にカンマ区切りのテキストになるだけでした。しかしmapを使えば、それぞれのタスクのプロパティにアクセスできます。
prop("タスク").map(current.prop("タスク名"))
ここで登場するcurrentは「今処理しているそのデータ」を指します。リレーション先の深い階層にある情報も、このmapを使えば自由に引っ張ってこれるのが強みです。さらにfilter関数と組み合わせれば、「完了していないタスクだけを表示する」といった高度な集計も可能です。
日付計算の関数とフォーマット設定
プロジェクト管理では「期限まであと何日?」や「開始日から何週間経った?」といった日付の計算が頻繁に発生します。Notion関数ではdateBetweenやdateAddといった関数を使ってこれらを算出します。
ここでもドット記法が輝きます。「期限」から「今日」までの日数を計算する場合、以下のように書けます。
prop("期限").dateBetween(now(), "days")
【日付関数のポイント】 Notionの日付データは内部的に時刻情報も持っています。formatDate()を使って表示形式を整える際は、自分が意図したタイムゾーンになっているか確認することが大切です。
プログレスバーを作る数式の記述例
タスクの進捗状況を数字(%)だけで見るよりも、バー形式で視覚的に表示した方が直感的に把握できますよね。以前は特殊な文字を組み合わせて擬似的に作っていましたが、今はstyle()関数と計算を組み合わせることで、動的に色が変化するリッチなプログレスバーが作れます。
私がよく使うのは、進捗率に応じて色が「赤→黄→緑」と変わるバーです。letsを使って計算結果を変数に入れておくと、コードもスッキリします。
【プログレスバー作成のコツ】
repeat("■", 数字)を使って、進捗率に応じた個数のブロックを表示する。style()で色を指定する際、条件分岐を使って進捗率が低い時は"red"、完了したら"green"のように色を出し分ける。
家計簿を自動化する関数の実装方法
Notionで家計簿をつけている方も多いと思いますが、関数を使えば「今月の支出合計」を自動で計算させることも可能です。
例えば、「支出」データベースと「月次集計」データベースをリレーションさせます。そして、map関数とsum関数を組み合わせることで、リレーションされた支出データの金額だけを合計します。
さらにfilter関数を挟めば、「食費だけを合計する」「固定費を除いて計算する」といった柔軟な集計も、ロールアップ機能を使わずに一つの数式で完結します。これにより、データベースのプロパティ数を減らし、管理画面をスッキリ保つことができます。
まとめ:Notion関数で業務効率化を実現する
ここまでNotion関数2.0の機能を見てきましたが、単に計算ができるようになっただけでなく、「データを判断し、可視化する」ためのツールへと進化したことがお分かりいただけたかと思います。
データベース設計において、「手動で入力する項目」を極限まで減らし、「自動で判定・表示される項目」を増やすことが、継続的な運用のコツです。最初は難しく感じるかもしれませんが、まずは「期限切れタスクのアラート」や「シンプルな進捗バー」といった小さな自動化から始めてみてください。Notion関数を味方につけて、自分だけの快適なワークスペースを作り上げていきましょう。