ネクストモードの南です。
Notionのデータベースの関数機能について大きなアップデートがありました。
関数2.0(Formula 2.0)としてリリースがアナウンスされましたが、今回はアップデートの内容やこれまでとの変更点についてレポートしていきます。
今回のリリースによって関数の操作性や仕様が大きく変更されました。
これまでの関数機能と比較して、新しくなった関数ではざっくりと以下のようなことができるようになっています。
ここからは関数2.0で新しくなった機能やポイントについて解説をしていきます。
新しい関数では具体的に以下のようなことができるようになりました。
盛りだくさんですが、文面だけではどのように変わったのかわかりにくい部分もあると思うので、具体的なケースも交えて解説していきます。
関数エディター(関数の編集画面)では以下の機能が追加されました。
これまで入り組んだ数式を作成する際、エラーがあってもどこが原因かなかなか特定できずにイライラする、という経験をした方も多いと思います。
今回のアップデートではエラー箇所の強調表示が追加され、エラーへの対処がしやすくなりました。
また、数式を複数行に分けて記述したり、コメントの記述も可能になっており、複雑な数式も整理して記述することができるようになっています。
さらに数式の出力結果を確認できるウインドウも追加されており、かなり編集がしやすくなったと感じます。
これまでの関数機能では、数式の出力はテキスト、数値、チェックボックスのみとなっていました。
今回のアップデートではそれらに加えてページ、日付、ユーザー、リストの表示も可能になりました。
これらのプロパティは個別の属性を持つものがあり、数式からアクセスすることができます。
例えばユーザープロパティからは、以下のようにユーザー名のテキストデータを取得したり、eメールアドレスを取得することができます。
また、多くのオブジェクト指向言語と同じような具合で、オブジェクトからドット演算子を用いて関数を呼び出せるようになっています。
(name()は名前のテキストを、email()はeメールアドレスをユーザーオブジェクトから取得する関数)
また、length()やreplace()といった関数も呼び出すことができます。
既存の関数よりもかなり簡潔に記述することができるようになっています。
データ出力という点では、テキストデータのスタイルも指定できるようになったのもいいですね。
上記のように、今回のアップデートで関数の仕様が大きく変わりました。
(これまで使っていた数式については、出力結果に差分が生じないように自動的に置き換わっていますのでご安心ください。)
データの出力形式が多様になったのと、より簡潔にデータや関数機能を扱えるようになっており、関数の利便性が大きく向上するアップデートになっています。
また、プロパティだけでなく関数機能についても多くの追加があります。
詳細についてはこちらのNotionの公式ページをご参考ください。
ユーザーの名前やeメールアドレスといったワークスペースレベルの情報については、データベースでプロパティを作成しなくても関数からアクセスができるようになりました。
例えば、以下のデータベースでは「作成者」「更新者」「作成日時」「更新日時」のプロパティは作成していません。
この状態でも、関数からこれらの情報にアクセスすることができます。
関数のためにわざわざデータベースの構造を合わせる必要がなくなりました。
これまで関数でリレーション先のデータベースのプロパティの値を扱うためには、ロールアップを作成して参照させる必要がありました。
今回のアップデートで、ロールアップを作成しなくてもリレーション先のプロパティにアクセスできるようになりました。
3.のアップデート内容と同様に、関数のためにわざわざデータベースの構造を変える必要がなくなったのが良いですね。
実際に試してみます。
以下では2つのデータベース間でリレーションが作成されています。
リレーション先DBの「値」のプロパティについてはprop("リレーション先DB").map(current.prop("値"))で取得できます。
冒頭の例と同様に10倍するなら、sum()で合計値を出した後に* 10をすればOKです。
数式内でローカル変数の利用が可能になりました。
構文は以下の通りです。
variableで変数名、valueで値を指定し、expressionで変数を使用した数式を記述します。
例えば「年利0.5%で10000円を5年間運用する」という数式を組むとします。
見にくいですね。年利を変更したい場合にもなかなか厄介です。
※pow()を使えばいいじゃん、という突っこみはしない。
この数式でlet()を使用すると記述を見やすくシンプルにすることができ、修正もしやすくなります。
lets()では複数の変数を組み合わせて使用することができます。
また、以下のようにlet() / lets()を複数記述することもできます。
この場合、お互いの変数は干渉し合いません。
新しくなった関数機能についてレポートさせていただきました。
今回のアップデートによって、関数の操作性やデータの扱いやすさが大きく向上しました。
仕様が変わった部分もあるので最初は戸惑う部分もあるかもしれませんが、簡潔に使えるようになっており、利用シーンもより広がるものになっています。
これから試したい内容もまだまだあるので、また続報についてもお知らせしていきたいと思います。
ネクストモード社は、日本で3社しかないNotion販売代理店です。(2023年01月01日現在)
Notion導入を検討の際は是非下記からお問い合わせ頂けますと幸いです。