哈喽,感谢你访问我们的帮助中心。目前我们的帮助中心还在建设中。我们将在不久的未来呈现帮助中心的内容。感谢你的理解,我们未来再见!

Formulas 2.0:如何在现有设置下使用 Notion 最新升级的函数

如果你使用过 Notion 的函数,你可能好奇有哪些新变化。本使用手册详细介绍了函数的新变化及其对函数高阶用户的重要意义。

8 分钟阅读
Formulas 2.0 主图
我们更新了公式编辑器和语言。在本使用手册中,我们将详细介绍这些变化并阐述这对你和你的函数有何意义。
在本指南中
  • 函数新增功能
  • 这对你有何重要意义
  • 更新函数以获取丰富的数据输出
  • 根据属性调用工作空间级别信息
  • 使用 let 创建自定义变量
  • 引用相关数据库中的属性(无需汇总!)
  • 探索针对现有功能的所有更改

我们改进了函数使用体验,具体如下:(1) 函数编写更加简便,(2) 函数输出包含更多属性类型,以及 (3) 函数语言可以满足更为具体的需求。

现有的函数会发生什么?

在本使用手册中,我们将介绍函数新增功能,并阐述这对当前函数用户有哪些重要意义。如果你对函数完全不熟悉,请查看我们的入门使用手册,了解如何通过编写 Notion 函数来扩展数据库功能

Formulas 2.0 的新变化如下:

  1. 函数编写和编辑更加简便:支持在编辑器中编写多行函数(支持制表符和注释!),而且更容易识别错误。在编写函数时,你会看到一个扩展的编辑框,支持多行编辑,可轻松查看和编辑较长的函数。另外,系统现在会直接在编辑框内进行类型检查并高亮显示错误,你可轻松修正语法错误,确保函数正常运行。

  2. 函数现在支持各种类型的数据输出:此前,仅支持文本、数字和复选框(布尔属性)输出。现在,函数还支持显示页面、日期、人员和列表等操作。

  3. 可以直接访问更多信息:函数现在变得更加智能,可以检索相关数据库属性,以及获取团队成员的电子邮件和姓名等信息。

新函数语言

更新函数以获取丰富的数据输出

此前,函数支持将各种不同类型的数据转换为文本。随着新版函数的推出,现在可以提供更多类型的数据输出。

考虑到用户对于函数输出的外观和行为具有特定期望,为了保持输出兼容性,所有引用汇总、人员、文件和多选属性的现有函数均已转换为文本形式。

例如,此前使用 prop("Person") 来返回人员姓名文本,现在将改用 prop("Person").map(current.format()).join(", ")。原因是在 Formulas 2.0 中,prop("Person") 现在将返回人员列表,而非仅用逗号隔开的文本值。在迁移过程中,我们会将“人员”列表中的每个项目转换为文本值,并用逗号隔开以保留原始输出。

如想使用改进后更为丰富的数据类型,则需要删除转换语言。在上述示例中,直接使用 prop("Person") 即可。在这种情况下,你的输出将返回人员类型对象列表,而非纯文本。

动态属性提及

根据属性调用工作空间级别信息

你现在可以访问工作空间级别信息,例如数据库或相关数据库中所标记人员的姓名和电子邮件,而无需为其创建单独的属性。

例如,你可以通过“创建者”属性来检索用户的全名和电子邮件等数据,然后通过 prop("Created By").name() 引用“姓名”或通过 prop("Created By").email() 引用“电子邮件”。

这有助于简化大型数据库中的属性操作,无需执行多个步骤即可检索所需信息。

现已支持点符号

使用 let 创建自定义变量

Formulas 现在支持在本地创建变量。与传统 Javascript 类似,let 使用第一个参数的名称和第二参数的值来创建变量。第三个参数用于根据新创建的变量来编写其余部分的函数。

例如,如果你正在编写引用总成本的函数,其中成本为若干属性的总和,则可能不希望在编写函数时重复加总这些属性。

可以尝试使用 let(SalesTax, (prop("Subtotal")*0.099), prop("Subtotal") + SalesTax) 创建一个变量。这样,每当输入 SalesTax 时,就能使用预先定义的合计值乘以税率。

哪些情况下应使用变量?

掌握了 let 的用法之后,你还可以使用 lets 一次性为多个变量赋值。

例如,可以使用 lets(a, "Hello", b, "world", a + " " + b) 来结合两个变量。

引用相关数据库中的属性(无需汇总!)

现在,你可以在相关数据库中精确找到所需信息,无需先创建汇总再引用相关属性。函数既可以编辑信息,又支持更改信息显示方式,二者结合即可发挥比常规汇总更强大的功能。

例如,如果有与“任务”数据库相关的“项目”数据库,则可以根据项目的完成百分比将任务显示为“✅ 已完成”“⚠️ 进行中”“❌ 未开始”

此前,你需要创建汇总内容来显示任务完成情况,然后创建用于返回以下状态的函数:“✅ 已完成”“⚠️ 进行中”“❌ 未开始”

使用新版函数,你可以结合这些操作并将“汇总值”定义为变量形式。

  1. 首先,使用 map()filter()length() 函数得到已完成任务数。

prop("Tasks").map(current.prop("Status")).filter(current == "Done").length()

2. 其次,在名为 percentComplete 的变量中定义汇总值,即用已完成任务数除以总任务数,然后乘以 100,就大功告成了!现在,你可以将函数应用于新页面值。

let(percentComplete,prop("Tasks").map(current.prop("Status")).filter(current == "Done").length()/ prop("Tasks").map(current.prop("Status")).length()* 100),/* 在此处编写其余部分的函数 */)

在此特定示例中,最终的函数如下所示。

let(percentComplete, round(prop("Tasks").map(current.prop("Status")).filter(current=="Done").length()/ prop("Tasks").map(current.prop("Status")).length()* 100),ifs(percentComplete == 100, "✅ All tasks complete", percentComplete > 0, "⚠️ In progress (" + percentComplete + ")%","❌ Not started"))

使用下方的切换键查看特定函数的更改,同时请注意,现有函数会自动进行转换。

属性引用变更

数学函数变更

日期函数变更

文本函数变更

复选框(布尔属性)函数变更

当然,还新增了很多其他函数,如 match()style() 等!点击此处,查看完整列表。

所有函数资源

  • 此处介绍了函数术语。

  • 此处提供了关于如何编写函数的入门手册。

  • 此处提供了有关 Formulas 2.0 新功能的指南。

  • 此处列出了 Notion Formulas 支持的所有函数。

共享本指南

给予反馈

这个资源有帮助吗?


从模板开始

浏览我们模板库中超过 10,000 个的模板


有什么是我们没有涉及的?