よくある数式エラー
Notionの数式を使用する際によく見られるエラーとそのトラブルシューティング方法についてご紹介します🔨。
数式のエラーを修正する方法がわからない場合は、Notion AIがお手伝いします。詳しくはこちら →
参照先のデータベースにアクセスできない場合、数式は正しく計算されません。これは、数式がソースデータベースとそのプロパティ設定へのアクセスを必要とするためです。
対策
ボタンまたはデータベースのオートメーション内で、数式により参照されるすべてのページとデータベースにアクセスできることを確認してください。
データベースの数式プロパティとは異なり、オートメーション内の数式は、特定の結果型(日付、/テキスト、数値、ユーザーなど)を返す必要があります。そうでない場合、オートメーションの保存や実行が正常に行われません。
対策
数式が正しい型の値を返すようにしてください。たとえば、/ページのユーザープロパティの値を設定する数式を作成する場合、数式は日付ではなく、ユーザーまたはユーザーのリストを返す必要があります。あるいは、配列型プロパティ(マルチセレクトなど)で特定の条件を評価する場合は、if()ステートメント内で==の代わりに.includesを使用するようにしてください。
このエラーの一般的な原因は、空の値を表すために異なる型を使用していることです。たとえば、if(Date, Date.dateAdd(1, “day”), "")のような数式では、結果が日付になるかテキストになるか(""のため)不明なため、戻り値の型が特定されません。これは、空の値を表すためにempty()を使用することで修正できます。修正後の数式は、if(Date, Date.dateAdd(1, "day"), empty())のようになります。
Notionの数式は、15層までしかネストできません。数式が別の数式やロールアップを参照するたびに、層が1つ追加されます。これは、数式が別のデータベースにある場合でも適用されます。
この上限に達すると、Notionにエラーメッセージが表示されます。
対策
不要な数式やロールアップをより少ないプロパティに統合して、設定を簡素化してください。複数の数式が似たような処理を行っている箇所を探し、それらを1つにまとめるようにします。
同じオートメーションアクション内 で複数のカスタム変数が定義されている場合、それらカスタム変数は互いを参照しあうことができません。
たとえば、同じアクションでvar1とvar2を定義した場合、var2はその定義にvar1を使用できません。
対策
各変数をそれぞれ個別のアクションで定義します(最初の変数を作成し、新しいアクションをオートメーションに追加し、次の変数を個別に定義します)。これにより、各変数が正しく認識されるようになります。
現在、オートメーション内で定義された変数をオートメーションによって操作したいデータベース内のページを絞り込むために使用することできません(例:「次の 変数を含む」フィルターにマッチするページを編集する」)。
対策
数式ボックスに
トリガーページを入力して、カスタム変数を「This page」として定義します。アクションに編集ページを追加し、ステップ1のカスタム変数をターゲットとして選択します。
数式でリレーション、ロールアップ、ユーザープロパティを扱う場合、数式は/ページまたはユーザーのリストを返します。リレーション内のプロパティを参照するには、最初の要素を定義する必要があります。そうしないと、オートメーションが一時停止します。この問題は、リレーションプロパティに対してmap関数を使用する数式を作成する際にも発生する可能性があります。
対策
最初の要素を取得するには.first()や.at(0)といった関数を使用し、ページのリストをループするには、.map()、.filter()、.every()、.some()、.find()といった関数を使用します。
もし数式に予期しない空の値(特に日付やユーザーの値)が紛れ込むようなことがあると、オートメーションはエラーを検知して、自動的に一時停止します。
対策
ifまたはifsを使用して、操作対象のプロパティに値があることを確認してください。たとえば、Date.dateAdd(1, "day")とする代わりに、if(Date, Date.dateAdd(1, "day"), empty())を使用することをお勧めします。これにより、Dateの値が存在する場合にのみdateAddが実行されるようになり、Dateに値がない場合に更新対象のプロパティをクリアするようオートメーションに明示的に指示できます。あるいは、操作対象のプロパティの値が確実に存在するようにフィルターを設定したビューを作成し、そのビュー内の /ページ に対してのみオートメーションが実行されるように構成してください。
数式が予想どおりに機能しない場合は、カッコが抜けている、間違った演算子またはサポートされていない関数を使用しているといった、構文エラーが原因である可能性があります。数式の構文の詳細については、こちらの記事 →をご覧ください。
