よくある数式エラー

Notionの数式を使用する際によく見られるエラーとそのトラブルシューティング方法についてご紹介します🔨。
参照データベースへのアクセス権がない場合、数式を使って正確に計算をすることはできません。それは、数式がソースデータベースとそのプロパティ設定へのアクセスを必要とするためです。
対策
ボタンまたはデータベースのオートメーション内で、数式により参照されるすべてのページとデータベースにアクセスできることを確認してください。
データベースで使用する数式のプロパティとは異なり、オートメーションで使用する数式では、数式の戻り値が特定の型であることが必要とされます(例:date、text、number、person)。特定の型でない場合、オートメーションは適切に保存も、実行もされません。
対策
数式が正しい型の値を返すことを確認してください。たとえば、ページのPersonプロパティの値を設定する数式を書く場合、数式はdateではなく、ユーザーまたはユーザーのリストを返す必要があります。また、配列型プロパティ(例:multi-select)で特定の条件を評価する場合は、if()
ステートメントで
== の代わりに
.includesを使用してください。
Notionの数式の 深さは、15層までしか利用できません。数式が別の数式またはロールアップを参照するたびに、層がひとつ追加されます。これは、数式が別のデータベースにある場合でも適用されます。
この上限に達すると、Notionにエラーメッセージが表示されます。
対策
不要な数式とロールアップを組み合わせ、プロパティの数を減らすことで、セットアップをシンプルにします。複数の数式が同様の働きを行う箇所を探し、それらを1つに統合してみましょう。
同じオートメーションアクション内 で複数のカスタム変数が定義されている場合、それらカスタム変数は互いを参照しあうことができません。
たとえば、同じアクションで
var1と
var2を定義した場合、var2は
その定義にvar1を
使用できません。
対策
各変数をそれぞれ個別のアクションで定義します(最初の変数を作成し、新しいアクションをオートメーションに追加し、次の変数を個別に定義します)。そうすることで、各変数が適切に認識されます。
現在、オートメーション内で定義された変数をオートメーションによって操作したいデータベース内のページを絞り込むために使用することできません(例:「次の 変数
を含む」フィルターにマッチするページを編集する」)。
対策
数式ボックスに
トリガーページを
入力して、カスタム変数を「This page」
として定義します。アクションに
編集ページを追加し、ステップ1のカスタム変数をターゲットとして選択します。
オートメーションに数式を記述するとき、データベースのプロパティが自動的に表示されない場合があります。これはバグではありませんが、特定の構文を使用する必要があります。
対策
トリガーページからデータベースのプロパティを参照するには、トリガーページ
と入力します。(最後に必ず.
を追加してください)。これにより、利用可能なプロパティのオプションがすべて表示されます。
数式内でリレーション、ロールアップ、人のプロパティを操作する場合、数式はページまたは人のリストを返します。リレーション内のプロパティを参照するには、最初の要素を定義する必要があります。そうしないと、オートメーションが一時停止してしまいます。この問題は、リレーションプロパティに対してマップ関数を使用する数式を作成するときにも発生する可能性があります。
対策
最初の要素を取得するには.first()
や.at(0)
といった関数を使用し、ページのリストをループするには、.map()
、.filter()
、.every()
、.some()
、.find()
といった関数を使用します。
数式が空の値に対して実行されると(例:Date、Personなど)、オートメーションはエラーとなり、自動的に一時停止します。
対策
何らかの値に対してPersonまたはDateの関数を使用する前には、if
とempty()
を実行して、その値が存在するかどうかを確認します。
例えば、「Owner」というPersonプロパティに対して数式を実行する場合は、次のif ステートメントを作成して強制的に値を取得します: if(empty(This page.Person.first()), “No person”, This page.Person.first().name())
.そうすることで、「Owner」が存在しない場合でも、オートメーションは確実に実行されます。
替わりに、定義されるDateまたはPersonの値を絞り込むビューをセットアップし、それぞれのオートメーションをそのビューに適応するというということもできます。
数式が予想どおりに機能しない場合は、カッコが抜けている、間違った演算子またはサポートされていない関数を使用しているといった、構文エラーが原因である可能性があります。数式の構文の完全な解説については、こちらの記事 →をお読みください。