公司一年跑两三次展会,每次都是同一套活:订展位、做物料、订酒店、备礼品、展后跟进客户。市场部的阿玲把这些事都记在一张多维表格里,两场展加起来三十多行,平铺着往下排。老板路过问一句「12月这场到现在花了多少、还有几件事没办」,她得先筛出这场展的记录,再把花费一行行加起来。
更麻烦的是层级。「物料制作」下面还分易拉宝、宣传册、样品,「差旅安排」下面分酒店、高铁、餐补,平铺在一张表里,看不出谁属于谁;拆成「项目表」「任务表」「事项表」三张表再做关联,查一个数要来回切。
飞书多维表格的「父子记录」就是用来解决这个问题的:一张表里,记录可以挂在另一条记录下面,展开、折叠成一棵树。我用这个参展的例子把它完整试了一遍,最后项目那一行能自动显示总花费、总工时、预算剩余和「几件已完成」,改一个事项的金额,合计也会自动跟着变。

本文目录:
1. 父子记录是什么,适合哪些场景
2. 开启父子记录:两种方式
3. 日常操作:添加、折叠、拖动和筛选
4. 父记录自动汇总:子记录求和与公式
5. 立项后自动生成任务:工作流
6. 使用前要知道的限制
一、父子记录是什么,适合哪些场景
打个比方,它像电脑里的文件夹:项目是一个大文件夹,任务是里面的小文件夹,具体事项是最里层的文件。每条子记录都有一个「父记录」字段,写着它属于哪一条,表格视图读到这个字段,就把记录排成可以展开、折叠的层级。
和「拆成几张表再关联」比,父子记录的好处是同一类东西放在同一张表里。项目、任务、事项字段都差不多(名称、负责人、状态、截止日期、花费),没必要拆成三张表维护三套字段。如果上下两层的字段完全不同,比如「客户」和「订单」,那还是拆成两张表、用关联字段更合适。
适合用父子记录的场景,基本都是「一个大的拆成几个小的」:项目拆任务、任务拆子任务;成品拆部件、部件拆零件(物料清单);年度预算拆到大类、再拆到明细科目;区域下面挂门店。
演示表开启父子记录后是这样的:项目下面挂任务,任务下面挂具体事项。

二、开启父子记录:两种方式
第一种,直接添加子记录。在某条记录上右键,选【添加子记录】;或者把鼠标停在这条记录的行号上,点右侧的【+ 添加子记录】。表格里还没有父记录字段时,系统会自动新建一个单向关联字段,名字叫「父记录」。

第二种,自己建字段再指定。先新建一个单向关联字段,【关联的数据表】选当前这张表,【可关联的数据范围】选所有记录,不要勾【允许添加多个记录】。然后点表格上方的【视图配置】,在父记录字段里选它。注意,父记录字段必须是单向关联,建成双向关联的话,表里的上级虽然填对了,视图也不会显示成树。


三、日常操作:添加、折叠、拖动和筛选
开启之后,每条父记录左边会多一个箭头,点一下展开或折叠;右侧会显示它下面有几条子记录。演示表里的「12月深圳行业展参展」下面挂了5个任务,「物料制作」下面又挂了3个事项。
几种常用操作说明如下:
| 操作 | 怎么做 | 结果 |
|---|---|---|
| 改顺序和层级 | 按住记录行最左侧的六点图标拖动 | 拖父记录时,下面的子记录一起移动 |
| 筛选、查找 | 和平时一样设置筛选条件 | 命中的是子记录时,会连同它所有的上级一起显示 |
| 删除 | 右键选【删除记录】 | 删父记录不会删子记录,子记录只是没有了上级 |
| 填写字段 | 照常在子记录里填 | 子记录不会继承父记录的值,负责人、截止日期要每条单独填 |
筛选这条在项目里很好用。比如筛「状态」等于「进行中」,结果里每个事项上面都带着它属于哪个任务、哪场展,不会冒出一条不知道是哪个项目的「宣传册印刷」。

四、父记录自动汇总:子记录求和与公式
关于父子记录,大家问得最多的是:父记录那一格,能不能自动算出下面所有子记录的合计。飞书有一个现成的字段捷径叫【子记录求和】。我先试了它,再换成公式,下面分别说说两种方式。
子记录求和:官方字段捷径
新建字段时,在【字段类型】下方的【探索字段捷径】里进入字段捷径中心,搜「子记录求和」;有时它会直接出现在字段类型列表里,标着「字段捷径」,如下图。配置只有三项:首字段选表格第一列(本例是「名称」),父记录字段选「父记录」,数值字段选要加总的列,比如「实际花费」。

它其实是帮你生成了一个公式,意思是:在「项目任务」表里,找出「父记录」等于本行名称的记录,把它们的「实际花费」加起来。
两个限制:只算下一级、按名称匹配
用参展的数据一跑,两个问题马上出来了。
第一,只算下一级。项目那一行显示0。因为项目下面直接挂的是任务,任务本身没填花费,钱都记在再下一层的事项上,这个公式算不到那一层。
第二,按名称匹配,名称相同就会串。两场展都有一个任务叫「展位预订」,结果两行都显示31,500,这是12月那场的17,100加上9月那场的14,400。每次参展都是这几步,任务重名在实际业务里几乎一定会发生。

所以,只有两层、而且父记录名称不会重复时,子记录求和可以直接用;三层以上或者有重名,要换成下面的公式。
公式写法:按记录ID汇总到最底层
思路是这样:名称会重复,但每条记录的ID不会重复,那就按记录ID认上下级;要算到孙级,就顺着「父记录的父记录」再找一层。
先建一个辅助字段「记录ID」,公式只有一个函数,建好可以在视图里隐藏:
RECORD_ID()
再建「花费合计」字段:
IFBLANK([实际花费],0)
+[项目任务].FILTER(CurrentValue.[父记录].[记录ID].CONTAIN([记录ID])).[实际花费].SUM()
+[项目任务].FILTER(CurrentValue.[父记录].[父记录].[记录ID].CONTAIN([记录ID])).[实际花费].SUM()
三行分别是:本行自己的花费、下一级的花费、再下一级的花费。层级更深时照着再加一行,每多一级多写一个「.[父记录]」。「工时合计」把「实际花费」换成「工时(小时)」就行。
我也试过让公式引用它自己、一次算到底,字段能建成功,但结果全部是空的,公式不支持这样递归,所以只能按层级逐段写。
换成这个公式后,数字全部对上了:
| 记录 | 花费合计 | 工时合计 |
|---|---|---|
| 12月深圳行业展参展 | ¥24,080 | 48小时 |
| └ 展位预订 | ¥17,100 | 5小时 |
| 9月广州行业展参展 | ¥19,220 | 79小时 |
| └ 展位预订 | ¥14,400 | 5小时 |
完成情况和预算剩余
老板问的另一半是「还有几件没办」。「下级完成情况」统计直属的子记录里有几条状态是「已完成」,拼成「1/3已完成」这样的文字:
IF(COUNTIF([项目任务],CurrentValue.[父记录].[记录ID].CONTAIN([记录ID]))=0,"",
CONCATENATE(
COUNTIF([项目任务],AND(CurrentValue.[父记录].[记录ID].CONTAIN([记录ID]),CurrentValue.[状态]="已完成")),
"/",
COUNTIF([项目任务],CurrentValue.[父记录].[记录ID].CONTAIN([记录ID])),
"已完成"))
预算只填在项目那一行,「预算剩余」用预算减花费合计,没填预算的行留空:
IF(ISBLANK([预算]),"",[预算]-[花费合计])
最后对比一下前后的做法:
| 以前(平铺一张表) | 现在(父子记录+公式) | |
|---|---|---|
| 这场展花了多少 | 筛出这场展的12个事项,手动加一遍 | 项目行「花费合计」直接显示¥24,080 |
| 还有几件没办 | 一行行看状态数 | 项目行显示「0/5已完成」,展开任务看「1/3已完成」 |
| 预算还剩多少 | 另算一遍 | 「预算剩余」显示¥20,920 |
| 改了一笔付款 | 重新加总 | 事项改金额,任务和项目的合计当场跟着变 |

五、立项后自动生成任务:工作流
每次参展的任务都是那几个,每次手动添加5个子记录也挺烦。可以用工作流来做:项目状态变成「已立项」时,自动生成这几个任务。我在参展表里配了一遍,还多加了一层。
先给「状态」字段加一个选项「已立项」,然后点左下角的【工作流】新建一个:
第1步:触发条件选【修改记录时】,数据表选「项目任务」,勾选「状态」,变更为「等于」「已立项」;再在【修改记录后同时满足以下条件】里加一条「层级」等于「项目」,免得任务改状态时也触发。


第2步:添加【新增记录】操作,数据表选「项目任务」,设置字段值:「名称」填「展位预订」,「层级」选「任务」,「状态」选「未开始」,「父记录」选第1步的触发记录:点击输入框,在之前步骤产生的数据里选第1步的【当前记录】。

第3步:照第2步再加4个【新增记录】,名称分别是「物料制作」「差旅安排」「现场接待」「展后跟进」。
第4步:要自动生成第三层,在「物料制作」那一步后面再加一个【新增记录】,「名称」填「易拉宝和海报」,「层级」选「子任务」,「父记录」选「物料制作」那一步新增的记录,而不是触发记录。这一步是让新任务挂到上一步生成的任务下面,我实测可以用。
第5步:保存并启用工作流。

测试时,我新建了一条「3月广州行业展参展」,状态先填「未开始」,再改成「已立项」,不到一分半钟,5个任务和「物料制作」下面的「易拉宝和海报」都生成好了,全部挂在对的位置,项目行马上显示「0/5已完成」。
有一点要提醒:状态改回去再改成「已立项」,会再生成一套任务。我实测过,「3月广州行业展参展」下面一下子变成了「0/10已完成」,所以立项后不要来回改状态。另外,每立项一次工作流就运行一次,免费的基础版和商业版标准版每月只有200次,参展这种一年几次的项目用不完,但同一个多维表格里其他工作流也会占用这个额度。
六、使用前要知道的限制
层级只在表格视图里显示。甘特视图里不能添加子任务,官方的建议是在甘特视图的【字段配置】里把「父记录」显示出来,或者按父记录分组,来看任务属于哪个项目。如果你在另一个表格视图里看到的是平铺的记录,先检查这个视图的【视图配置】里有没有选父记录字段。
分组只认第一级父记录,子记录不能作为分组条件。
高级权限里父记录和子记录各管各的。拿「只看与自己相关的记录」来说,只在项目上填负责人,下面的任务和事项对这个人是不生效的,要每一层都填人员字段。
一条父记录下最多再建4级子记录,公式按层级写,层级越多公式越长。在手机上使用子记录功能,飞书移动端要升级到V6.6及以上。
最后
回到阿玲那张表。现在两场展都折成了两行,老板再问「12月这场花了多少、还有几件没办」,她把项目那一行指给老板看就行;明年3月那场一立项,5个任务已经排在下面等着分配了。
我自己的体会是,父子记录本身几分钟就能上手,花时间的是汇总:官方的子记录求和只适合两层、名称不重复的情况,项目、物料清单这种三层的结构,还是按记录ID写公式更稳。
这张参展项目的演示表,包括上面的公式和立项工作流,我整理成了模板,复制到自己的飞书就能用。
模板链接:参展项目管理父子记录演示表
相关阅读

加好友请备注「博客」

回复关键词领模板


