为数据库添加序号 & 显示最新 n 项

summary
通过将数据库中所有条目关联一个父项,由 id 获得序号,实现根据创建时间添加序号或显示最新的 n 项。
tags
Notion
Formula
Example
date
Feb 6, 2021
Chinese version
介绍几种为数据库添加序号 & 显示最新 n 项的方法:通过将数据库中所有条目关联一个父项,由 id 获得序号,实现根据创建时间加序号或显示最新 n 项(最后一个方法还可用于最后修改时间)。

添加序号

序号 子数据库
序号
标题
关联父项
创建时间
id
id_rollup
1
Feb 15, 2021 12:05 PM
1
Feb 15, 2021 12:06 PM
1
Feb 15, 2021 12:07 PM
1
Feb 15, 2021 12:08 PM
1
Feb 15, 2021 12:16 PM
序号 父数据库
标题
id_rollup
子项
id_rollup_formula
 
设置方法:
  1. 子数据库设置筛选,新增时自动关联同一父项(已创建的可以全选,右键 edit property 增加父项关联)。
    1. notion image
  1. 添加函数属性 id() (就是 PageID)。
  1. 通过父项得到 id 汇总,子项再 rollup 该值(由于无法直接 rollup 一个 rollup 属性,需要在父项中新建一列 formula 供子项 rollup)。
  1. 通过正则表达式替换,计算全部 id 内,指定 id 是第几个(等于前面的字符数/32+1)。
 
注意点:
  • 序号的顺序与父项内关联顺序一致,默认是创建顺序,可以拖动调整。
  • 序号函数中加入取整是因为在添加一个新子项时,可能会出现 rollup 未及时更新的情况,但因为匹配不到该 id,会+0.9....,取整后即+1。

显示最新的 n 项

这里以 3 项为例,展示了两种方法

方案1:获取最新三项 id,判断是否包含

最新3项方案1 子数据库
显示全部
最新3项
标题
父项
id
最新3项 id
创建时间
Feb 1, 2021 10:55 AM
Feb 1, 2021 10:57 AM
Feb 1, 2021 10:58 AM
Feb 1, 2021 11:02 AM
Feb 1, 2021 11:07 AM
最新3项方案1 父数据库
标题
子项
id_rollup
最新3项 id
设置方法:
  1. 子数据库设置筛选,新增时自动关联同一父项。
  1. 添加函数属性获取 id。
  1. 通过父项得到 id 汇总。
  1. 最新3项 id 的函数内修改最后的 3 为你想要显示的个数,即可通过 slice 函数获得最新 n 项 id。
  1. 在子项中 rollup 最新3项 id,添加公式 最新3项 判断该项的 id 是否在最新3项内。
  1. 添加筛选条件 最新3项 为真。

方案2:依次获取最大时间戳(可用于创建时间,最后修改时间或自定时间属性)

最新3项方案2 子数据库
显示全部
标题
父项
创建时间
时间戳
最大1
除最大1
最大2
除最大12
最大3
除最大123
Feb 1, 2021 11:32 AM
NaN
Feb 1, 2021 11:33 AM
NaN
Feb 1, 2021 11:37 AM
NaN
Feb 1, 2021 11:38 AM
NaN
Feb 1, 2021 11:39 AM
NaN
最新3项方案2 父数据库
标题
子项
最大1
最大1公式
最大2
最大2公式
最大3
最大3公式
设置方法:
  1. 子数据库设置筛选,新增时自动关联同一父项。
  1. 添加创建时间(或最后修改时间)生成的时间戳。
  1. 通过父项得到最大时间戳(在 rollup 中可以选择 Calculate 为 Max)。
  1. 判断是否和子项相同,获取最大值,并标记为0。
  1. 重复 n 次 3, 4 步骤。
  1. 标记为0的项就是最大 n 项。
注意该方案需要每个项目有不同的时间戳,即在不同的分钟创建或修改。可行的改进:在后四位加入信息,如人工加入数字区别,或用 Name 字段的长度,或者把字母内容转换成数字等等,只要保证每个「时间戳」不同即可,否则会匹配到第一个时间戳,即出现并列的情况。

© Niin Ni 2021 - 2025