函数简介

在此帮助文档中

在 Notion 数据库中,你可以添加函数属性,以此执行各种计算和运行基于其他属性的函数。你可以使用函数来操作现有数据并得到许多其他有用的值🔮


Notion 函数可以利用你现有的数据库属性、内置函数和功能执行有用的计算。

让我们看看几种使用函数的不同方法。如果你准备好开始构建自己的函数,请跳转至下方关于创建函数的指令 下方 →

示例 1:项目管理

在此示例中,我们将使用三个函数来跟踪项目进度。

你可以通过将 此页面 复制到你的工作空间,来探索和试用此示例的公式设置!

目标

属性名称

函数

使用的函数和内置功能

将项目的截止日期设置为开始日期后的两周

截止日期

dateAdd(Start Date, 2, "week")

dateAdd() 用于在日期上增加时间。单位参数可以是以下之一:years(年)、quarters(季度)、months(月)、weeks(周)、days(天)、hours(小时)或 minutes(分钟)。在本例中,我们将使用 weeks(周)。

如果截止日期已过 状态不为 Done(完成),则将项目标记为逾期。

如果截止日期已过 状态不为 Done(完成),则以加粗的红色字体将项目标记为逾期。

是否逾期?

if(and(now() > Due Date, Status != "Done"), "Overdue", "")

if(and(now() > Due Date, Status != "Done"), style("Overdue", "red", "b"), "")

if() 在条件为真时返回第一个值;否则返回第二个值。这可以实现条件结果。

and() 是一个逻辑运算符。它允许评估多个因素是否同时为真。

now() 返回当前日期和时间。这允许评估我们当前所处的时间点与项目截止日期相比的情况。

> 是一个比较运算符。它允许比较截止日期是否晚于当前日期。

!= 是一个比较运算符。这允许定义状态不等于 Done 的条件。

style() 为文本添加样式和颜色。有效的格式样式包括 b(粗体)、u(下划线)、i(斜体)、c(代码)或 s(删除线)。有效颜色包括 graybrownorangeyellowgreenbluepurplepinkred。在颜色中添加 _background 可设置背景颜色。在本例中,我们将应用boldred

显示与项目关联的任务数量

剩余任务

Tasks.length()

length() 返回文本或列表值的长度。这允许计算剩余任务的数量。

示例 2:项目头脑风暴

在此示例中,我们将使用两个公式来构思项目创意,计算每个创意的优先级得分,并统计每个项目收到的赞同数。

你可以通过将 此页面 复制到你的工作空间,来探索和试用此示例的公式设置!如需了解使用 RICE 框架的另一种设置,请查看此 模板

目标

属性名称

函数

基于覆盖范围 (Reach)、影响力 (Impact)、信心 (Confidence) 和努力程度 (Effort) (RICE) 的得分,计算优先级得分

评分 (RICE)

Reach * Impact * Confidence / Effort

当有人点击赞同按钮时,将其计入总票数并将其姓名添加到数据库页面中。

投票总数

length(Upvoted by)

(高阶)示例 3:任务管理自动化

在此示例中,我们将在数据库 自动化(另一种数据库属性)中使用一些公式,通过在所有子任务完成时将父任务标记为 Done,从而更轻松地管理项目和任务。

数据库自动化具有触发器以及基于这些触发器执行的操作。函数允许你定义变量,然后在操作中使用这些变量。

你可以通过将 此页面 复制到你的工作空间,来探索和试用此示例的公式设置!

目标

如何构建

使用的函数和内置功能

每次将任务设置为 Done 时,触发自动化

触发器: 当状态设置为 Done

-

通过查找与触发自动化的任务相关的第一个页面来定义父任务

操作 1:定义 父任务 变量

函数:Trigger page.Parent item.first()

触发页面 引用的是触发该自动化的数据库页面,. 允许你访问与该页面关联的属性。

Parent item 返回该属性的内容,在本例中为相关页面列表。

Parent item 属性应用 .first() 函数,可返回该列表中的 第一个 相关页面。

如果父任务有子任务,请验证其所有子任务的状态是否均为 Done。如果父任务没有子任务,则返回 false

操作 2:定义 All subtasks done? 变量

函数:Parent Task.Sub-item ? Parent Task.Sub-item.every(current.Status == \"Done\") : false

三元运算符 X ? Y : Z 是一种简写条件表达式,含义为:如果 条件 X 为真,则返回 Y;否则,则返回 Z。它是 if() 语句的一种简洁替代方案。

.every() 用于检查列表中的每一项是否满足特定条件。在此函数中,您可以使用关键字 current 来引用当前正在评估的行。在本例中,条件 current.Status == \"Done\" 用于检查当前页面的状态属性是否设置为 Done。如果是,则返回 true;否则返回 false

如果所有子任务均为 Done,则将父任务的状态设置为 Done。如果不是,则保留父任务的现有状态。

操作 3:编辑 Status 属性

函数:All subtasks done? ? \"Done\" : Parent Task.Status

此处再次使用了三元运算符来查看所有子任务是否已完成。如果已完成,自动化将把父任务的状态设置为 Done;如果未完成,则保持父任务的状态不变。

更多公式灵感

在 Notion 中,你可以通过以下几种方式使用函数:

要创建公式数据库属性:

  1. 选择数据库顶部的滑块图标 → 编辑属性新属性

  2. 选择 公式

  3. 如果需要,可以为你的属性命名。

  4. 选择 编辑公式

在数据库或按钮中创建公式后,你将能够在公式编辑器中构建和编辑该公式,编辑器界面如下所示:

顶部的字段是你输入和编辑公式的地方。当你在编辑器顶部编写公式时,编辑器会提示你缺少什么,或者公式需要什么才能返回一个值给你。

编辑器左侧的面板显示了你可以在公式中使用的元素,即你可使用的属性、内置项和函数。

编辑器右侧的面板会在你将鼠标悬停在左侧面板的元素上时给出定义,还会为你提供这些元素的使用示例以及它们的结构。

如果从数据库行打开公式编辑器,你就会看到该行函数结果的实时预览。

公式出问题?了解更多常见公式错误以及如何在 本文 → 中进行排查。

提示: 此功能仅适用于商业版和企业版。

知道你想让公式实现什么功能,但不太确定如何构建?想要对现有公式进行一些调整?在公式中看到错误,但不知道如何修复?Notion AI 可以提供帮助。

当你在公式编辑器时,会看到一个包含 Notion AI 图标的字段。点击此字段并告诉 Notion AI 你想让公式实现什么功能,或者询问有关公式的问题以更好地理解它。

以下是你可以提供给 Notion AI 的一些示例指令:

  • “将标题属性转换为 URL slug。”

  • “如果截止日期已过,则返回 ⚠️。”

  • “将日期属性增加一天,并将输出设置为绿色和加粗。”

  • “返回关联数据库中的日期属性”(Notion AI 也了解你的关联属性!)

  • “将此公式的输出设为斜体。”

  • “修复此公式中的错误。”

  • “让此公式处理边缘情况。”(例如,Notion AI 可以添加一个 if 语句,这样当字段为空时公式就不会失败。)

  • “此公式有什么作用?”

输入指令后,Notion AI 将生成一个公式或回答你关于它的查询。你还可以查看公式输出的预览,以及切换 Show types 以查看输出类型(例如,文本),从而确保一切看起来如你所愿。你可以撤销 Notion AI 的更改、提供进一步的指令,或通过赞或踩让我们知道它的表现如何。

在使用 Notion AI 创建和编辑公式时,请注意 Notion AI 目前不支持以下内容:

  • 迭代逻辑(如 for 循环)。

  • 需要 random() 函数进行随机生成,而 Notion 公式中没有此函数。像“生成 1 到 10 之间的随机数”这样的(文字)指令无法实现。

  • 记住之前的(文字)指令。

Notion AI 不仅可以帮助你处理公式属性,还可以处理 按钮数据库按钮数据库自动化 内部的公式。

公式可以通过以下组合创建:

  • 属性。

  • 内置函数,或用于设置特定计算的运算符和布尔值。一些示例包括 +(加)、falseor

  • 函数,或公式为返回特定输出而执行的操作。一些示例包括 replacesumsort

公式中可用的内置函数和函数的完整列表可在此处查看 here →


给予反馈

这个资源有帮助吗?


Powered by Fruition