常见公式错误
了解一下你在 Notion 公式中可能遇到的常见错误,以及如何排查问题 🔨
If you’re unsure how to fix the errors in your formula, Notion AI can help. Learn more here →
如果你没有访问所引用数据库的权限,公式将无法可靠地计算。这是因为公式需要访问源数据库及其属性配置。
如何修复
确保你有权访问按钮或数据库自动化中公式所引用的 所有 页面和数据库。
与数据库中的公式属性不同,自动化中的公式要求公式返回特定的类型(例如:日期、文本、数字、人员)。否则,自动化将无法正确保存和执行。
如何修复
确保公式返回正确类型的值。例如,如果编写一个公式来设置页面的“人员”属性值,该公式必须返回一个用户或用户列表,而不是日期。或者,如果对数组类型属性(例如:多选)评估特定条件,请确保在 if() 语句中使用 .includes 而不是 ==。
此错误的一个常见原因是使用不同的类型来表示空值。例如,在像 if(Date, Date.dateAdd(1, “day”), “”) 这样的公式中,返回类型是未知的,因为它可能是日期或文本(由于 “”)。这可以通过改用 empty() 来表示空值来修复,因此修复后的公式看起来像 if(Date, Date.dateAdd(1, “day”), empty())。
Notion 公式最多只能有 15 层嵌套。每当公式引用另一个公式或汇总属性时,就会增加一层。即使公式位于不同的数据库中,此限制也适用。
达到此限制时,Notion 将显示错误消息。
如何修复
通过将不必要的公式和汇总属性合并为更少的属性来简化您的设置。寻找多个公式执行类似操作的地方,并尝试将它们合并为一个。
如果自定义变量在 同一个自动化操作中定义,它们就无法相互引用。
例如,如果你在同一个操作中定义 var1 和 var2,var2 将无法在其定义中使用 var1。
如何修复
在 各自独立的操作 中定义每个变量(先创建第一个变量,然后为你的自动化添加一个新操作,再分别定义下一个变量),确保每个变量都能被正确识别。
目前,自动化中定义的变量可能无法用于筛选你希望自动化操作的数据库页面(例如:‘编辑匹配筛选器包含 变量 的页面’)。
如何修复
通过在公式框中输入
触发页面,将自定义变量定义为此页面。添加一个
编辑页面于操作,并选择第 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 未填充时清除正在更新的属性。或者,你也可以设置一个带有过滤器的视图,确保你操作的属性值存在,并将自动化配置为仅在该视图中的页面上运行。
如果你的公式未按预期工作,可能是由于语法错误——例如缺少括号、运算符不正确或使用了不支持的函数。有关公式语法的完整说明,请阅读 本文 →。
