Notion公式能解决什么问题

你的Notion数据库还在手动更新状态、计算进度、统计金额?公式功能可以让这些全部自动化——任务逾期自动标红、项目完成度自动计算、预算超支自动预警。掌握公式后,Notion从静态表格变成动态管理系统。

第一步:公式基础语法

在Notion数据库中添加属性,类型选择公式。基础语法要点:

  • 属性引用——用prop(属性名)引用其他列的值
  • 字符串用双引号——如完成、进行中
  • 数字直接写——如100、0.5
  • 日期用now()——表示当前时间

第一个练习:自动计算任务是否逾期。假设有截止日期(日期类型)和状态(选择类型):

if(prop(状态) != 完成 and prop(截止日期) < now(), 已逾期, 正常)

这个公式判断:如果状态不是完成,且截止日期已过,显示已逾期,否则显示正常。

第二步:数学计算与进度追踪

项目进度自动计算是公式最实用的场景之一。假设数据库有总任务数和已完成数两列:

round(prop(已完成数) / prop(总任务数) * 100) + %

这个公式自动计算完成百分比并加上百分号。配合Notion的进度条显示,项目进度一目了然。

财务跟踪场景:自动计算预算剩余:

prop(预算总额) – prop(已花费)

如果希望超预算时显示警告:

if(prop(预算总额) – prop(已花费) < 0, 超支 + (prop(预算总额) - prop(已花费)) * -1, 剩余 + (prop(预算总额) - prop(已花费)))

第三步:日期处理与时间计算

日期公式在任务管理中非常实用。计算距离截止日期还剩多少天:

dateBetween(prop(截止日期), now(), days)

自动判断任务优先级(根据截止日期远近):

if(dateBetween(prop(截止日期), now(), days) < 3, 紧急, if(dateBetween(prop(截止日期), now(), days) < 7, 高, 中))

这个公式把3天内截止的标为紧急,7天内标为高,其余标为中。

第四步:条件格式化与视觉提醒

Notion支持根据公式结果自动变色(需要Notion增强版或配合浏览器插件)。基础版可以用公式输出 emoji 实现视觉区分:

if(prop(状态) == 已完成, 已完成, if(prop(优先级) == 紧急, 紧急, if(prop(优先级) == 高, 重要, 待处理)))

更高级的做法是输出彩色进度条字符:

slice(████████████, 0, round(prop(完成百分比) / 10)) + slice(░░░░░░░░░░░░, 0, 10 – round(prop(完成百分比) / 10))

第五步:关联数据库跨表计算

Notion的关系属性让跨数据库计算成为可能。假设有项目数据库和任务数据库,任务通过关系属性关联到项目:

prop(任务).filter(current.prop(状态) == 已完成).length()

这个公式统计关联任务中已完成的数量。配合总任务数,就能在项目数据库中自动显示项目完成进度,无需手动更新。

常见问题与误区

  • 公式不更新——Notion公式是实时的,如果显示不对检查属性名是否写错
  • 日期计算结果为负数——dateBetween顺序要注意,先写截止日期再写now()
  • 除零错误——做除法前先用if判断分母是否为0
  • 关联数据库公式太复杂——拆成多个简单公式,用 rollup 属性分步计算

效率数据

实测:一个10人项目的任务管理数据库,手动更新状态和进度每天约10分钟,使用公式自动化后只需维护原始数据(任务数和状态),进度和预警全部自动计算,每天节省8分钟。一个月下来节省3小时以上。核心建议是:先把最耗时的手动计算场景找出来,针对性地写公式替代。