PC TOOLS

EP09. “公式 Formulas 详解”

首页 PC 工具 Take Note · Notion · EP09
约 7 分钟· #EP09#Notion
🔒 登录后可标记已读

这篇笔记讲 Notion 公式功能——公式能用在哪些地方、怎么建立和编辑、公式的组成部分,以及几个实用的公式范例(项目管理、评分、任务自动化)。 前置知识:先看过 EP05、EP08,熟悉数据库属性和自动化按钮的基本概念。

重点内容


公式能用在哪里

  • 作为数据库属性(最常见的用法)
  • 页面按钮和数据库按钮内部
  • 数据库自动化里定义变量或逻辑

每个公式都会评估并返回一个动态结果——文字、数字、布尔值(true/false)、或日期,取决于其他属性或函数。


建立与编辑公式

建立公式属性:

  1. 打开数据库 → 点 •• → Properties
  2. 点 New property → Formula
  3. 命名公式(比如「Priority Score」或「Overdue?」)
  4. 点 Edit formula 打开公式编辑器

公式编辑器界面:

  • 输入公式的文字栏
  • 左侧面板列出可用的数据库属性和内建函数
  • 右侧面板显示语法说明和实时提示
  • 从数据库某一行编辑时会有实时预览结果

[截图:公式编辑器全貌,标出文字栏、左侧属性/函数面板、右侧语法说明面板]


公式组成部分

公式由以下几部分组成:

  • 属性(Properties):当前数据库里的数据(比如 Status、Due Date、Priority)
  • 内建符号(Built-ins):运算符和逻辑值,比如 +-orfalse!=
  • 函数(Functions):具体动作,比如 replace()sum()length()now()dateAdd()

Notion 也支持公式内的样式格式化,以及逻辑运算符 if()and()or(),还有三元运算符 X ? Y : Z


公式范例

项目管理场景:

目标公式
设定开始后两周为截止日dateAdd(Start Date, 2, "week")
超过截止日且未完成,标记为逾期if(and(now() > Due Date, Status != "Done"), "Overdue", "")
加粗红色的「逾期」标签if(and(now() > Due Date, Status != "Done"), style("Overdue", "red", "b"), "")
统计未完成任务数length(Tasks.map(current.Status != "Done"))

用到的函数:dateAdd()if()and()now()style()map()length()

项目脑暴评分(RICE):

目标公式
RICE 评分(触达 × 影响 × 信心 ÷ 成本)Reach * Impact * Confidence / Effort
统计总赞成票数length(Upvoted by)

用这个方法能依据量化影响力排定项目优先级,靠赞成票数追踪关注度。

任务管理自动化: 当所有子任务都标记为「完成」时,触发自动化更新母任务状态:

  1. 触发条件:当 Status = Done
  2. 定义母任务:Trigger page.Parent item.first()
  3. 检查子任务是否全部完成:Parent Task.Sub-item ? Parent Task.Sub-item.every(current.Status == "Done") : false
  4. 更新母任务状态:All subtasks done? ? "Done" : Parent Task.Status

用到的函数:first()every()、三元运算符 X ? Y : Z

📌 这套设定很适合项目层级结构——子任务的完成状态会驱动母任务的完成状态。


在自动化与按钮里用公式

公式能直接嵌入:页面按钮、数据库按钮、数据库自动化。

用公式能动态:插入人名、页面标题、日期;为邮件生成计算过的标题或内容;用样式或条件式格式化内容;用布尔值判断控制分支逻辑。

常见错误

  • ❌ 想判断任务是否逾期,手动逐一检查日期——用 if(and(now() > Due Date, Status != "Done"), "Overdue", "") 让公式自动判断
  • ❌ 母任务的完成状态要手动根据子任务逐一更新——用 every() 函数检查所有子任务状态,配合三元运算符自动更新母任务
  • ❌ 不知道某个函数怎么用,反复试错——公式编辑器右侧面板有语法说明和实时提示,遇到不熟悉的函数先看这里
  • 💡 公式支持样式格式化(比如 style()),善用它能让重要状态(比如「逾期」)用红色加粗醒目呈现,不用额外手动改格式

Sources

Blog / Website:

  1. The Ultimate Notion Guide — https://www.morgen.so/blog-posts/notion-tips-and-tricks