如何在Notion中设置项目子项目的差异化完成占比与权重?
Notion 父项目完成度显示与加权计算解决方案
一、修复父项目Completion列空白问题(显示100%当所有子项目任务完成)
假设你的数据结构是:
- 主项目数据库:包含「My Project」条目
- 子项目数据库:包含子项目1、子项目2,每个子项目通过「关联主项目」列关联到My Project
- 任务数据库:每个任务通过「关联子项目」列对应到子项目,且有「Status」列标记「Done」状态
步骤1:给子项目添加完成度计算列
在子项目数据库中新建Formula列(命名为「子项目完成度」),输入公式:
if(empty(prop("关联任务")), 0, length(filter(prop("关联任务"), prop("Status") == "Done")) / length(prop("关联任务")))
这个公式会自动计算当前子项目下已完成任务的占比(返回0-1的数值)。
步骤2:给主项目添加汇总完成度的Formula列
在主项目数据库中:
- 先新建Relation列(命名为「关联子项目」),关联到子项目数据库,勾选My Project对应的两个子项目。
- 新建Formula列(命名为「Completion」),输入公式:
if(empty(prop("关联子项目")), 0, sum(prop("关联子项目").map(prop("子项目完成度"))) / length(prop("关联子项目")))
- 点击该Formula列的「属性设置」,将「格式」改为「百分比」。
当所有子项目的任务都标记为Done时,子项目完成度会返回1,主项目的Completion列就会显示100%。
二、为子项目设置不同权重计算完成度
如果需要让子项目1占40%、子项目2占60%的权重,只需调整以下步骤:
步骤1:给子项目添加权重列
在子项目数据库中新建Number列(命名为「权重」),给子项目1填入0.4,子项目2填入0.6(确保所有权重之和为1)。
步骤2:修改主项目的Completion公式
将主项目的「Completion」列公式替换为:
if(empty(prop("关联子项目")), 0, sum(prop("关联子项目").map(prop("子项目完成度") * prop("权重"))))
同样将列格式设置为「百分比」,即可得到加权后的完成度。
注意事项
- 如果你的任务是直接嵌套在主项目页面下(而非独立数据库),需要先将任务整理到数据库中,才能通过Relation和Formula实现关联计算。
- 公式中的列名(如「关联任务」「Status」「权重」)要和你实际的列名完全一致,区分大小写。
内容的提问来源于stack exchange,提问作者ailauli69
相关产品推荐
相关产品推荐

