Skip to content

查找字段(Lookup)

查找字段用于从另一张数据表中提取目标字段的值,并支持聚合计算与条件过滤。它是实现跨表数据联动、汇总分析的核心字段类型,常被类比为「查找引用 / Rollup」字段。

实时只读

查找字段的值由系统在读取记录时实时计算,单元格不可手动编辑。修改源表数据、引用字段或筛选条件后,查找结果会自动重算。

适用场景

  • 在订单表中显示客户名称(从客户表查找)。
  • 在项目中汇总所有关联任务的完成数量。
  • 在产品表中计算供应商的平均报价。
  • 在销售表中统计每个客户的订单总金额。
  • 反向汇总:任务表通过「所属项目」关联项目表,在项目表中汇总每个项目的任务工时合计。

一、工作原理

查找字段的计算逻辑如下(后端 LookupService.compute_lookup_value):

  1. 读取源数据表的全部未删除记录。
  2. 筛选条件过滤出符合条件的源表记录(无筛选则返回全部)。
  3. 从这些记录中提取引用字段的值。
  4. 计算方式对提取值做聚合(原值 / 去重则保留列表)。
  5. 字段格式对聚合结果做格式化后展示。

关键点:查找字段并不要求当前表先建立指向源表的关联字段。它通过筛选条件对源表做「全表扫描 + 过滤」,因此在很多场景下可以独立于关联字段使用;当源表存在指回当前表的关联字段时,配合「当前记录」值类型可实现反向汇总。

二、创建查找字段

  1. 在数据表中点击「添加字段」,选择字段类型「查找」。
  2. 配置以下参数:
配置项说明
源数据表要查找的数据表,限同一 Base 下的其他数据表(不能是当前表)
引用字段源数据表中要提取的字段(包含隐藏字段
过滤条件可选,最多 5 个;留空则返回源表所有记录
计算方式选择如何聚合查找结果(8 种,见下文)
字段格式聚合模式下可用,用于格式化结果(原值 / 去重模式自动跟随源字段)
  1. 点击「预览结果」可基于当前记录实时查看计算结果(需先保存字段)。
  2. 点击保存。

三、计算方式

共有 8 种计算方式:

计算方式说明结果形态
原值直接显示引用字段的值;一对多时显示为列表数组 / 标量
去重对多个引用值去重后显示数组
去重计数去重后的唯一值数量数字
求和对数值型引用值求和数字
计数统计满足条件的源记录数量数字
平均值对数值型引用值求平均数字
最大值取最大:支持数字与日期数字 / 日期
最小值取最小:支持数字与日期数字 / 日期

空结果排查

聚合结果为空时,优先检查筛选条件是否命中:先用「计数」模式验证筛选能命中多少条记录,确认有数据后再切换为「求和」等数值聚合。

四、筛选条件

查找字段支持对源表记录设置多条件筛选,只有满足条件的记录才参与计算。

4.1 条件数量与连接

  • 最多 5 个条件(超过会在保存时被拒绝)。
  • 多个条件之间支持 AND / OR 组合:
    • 满足全部条件(AND)
    • 满足任一条件(OR)

4.2 单条条件结构

每条条件由三部分组成:

  1. 源表字段:源数据表中的某个字段(被过滤的字段)。
  2. 操作符:比较方式(见 4.3)。
  3. 比较值:由「值类型」决定(见 4.4)。

切换字段时:若新字段类型不支持当前操作符,系统会自动回退为「等于」;若新字段不是关联字段,原「当前记录」值类型会自动回退为「当前表字段」。 切换操作符为「为空 / 不为空」时,比较值输入会被清空(这两种操作符无需比较值)。

4.3 操作符(7 种)

系统共提供 7 种操作符,按源表字段类型自动启用适用项:

操作符适用字段类型
等于全部字段类型
不等于全部字段类型
为空全部字段类型
不为空全部字段类型
包含文本类(单行 / 多行 / 富文本 / 邮箱 / 电话 / 链接)+ 选择 / 人员 / 关联类(单选 / 多选 / 成员 / 协作者 / 关联字段)
早于日期类(日期 / 日期时间 / 创建时间 / 更新时间)
晚于日期类(日期 / 日期时间 / 创建时间 / 更新时间)

TIP

「为空 / 不为空」不需要填写比较值;其余操作符需要配合「值类型」提供比较值。

4.4 比较值的三种来源(值类型)

值类型说明输入控件
当前表字段当前表某个字段的值比较下拉选择当前表字段
自定义值与手工录入的固定值比较按源表字段类型动态渲染(数字 → 数字框,日期 → 日期选择器,其他 → 文本框)
当前记录当前记录本身比较。仅当该条件的源表字段是关联字段时可选无需输入

4.5 关联字段与显示值的匹配规则

关联字段在记录中存储的是目标表的记录 ID(单个 ID 或 ID 数组),而非显示值。因此:

  • 要用「源表的关联字段」匹配「当前这条记录」,把值类型选为「当前记录」即可(系统会用当前记录 ID 与关联值做 ID 交集判断)。
  • 若值类型选「当前表字段」并指定了一个文本字段(如项目名称),系统会自动把该显示值解析为对应的记录 ID 后再比较。
  • 关联字段的「等于 / 包含」按记录 ID 交集判断:只要源记录的关联值中包含目标记录 ID 即视为命中;「不等于」则取无交集。

此外,当比较的一方是选择类字段(单选 / 多选,存储选项 ID)、另一方是文本(选项名称)时,系统会自动展开为「选项 ID + 选项名称」的候选集合后匹配,避免 ID 与名称直接比较导致永不匹配。

五、字段格式

对于非原值 / 去重模式(即去重计数、求和、计数、平均值、最大值、最小值),查找字段支持自定义结果格式;原值 / 去重模式下格式自动跟随源字段,不可修改。

格式类型适用计算方式配置项
数字去重计数 / 求和 / 计数 / 平均值 / 最大最小小数位数(0–10)
货币去重计数 / 求和 / 计数 / 平均值 / 最大最小货币符号(如 ¥、$、€)+ 小数位数
日期仅「最大值 / 最小值」且源字段为日期类型时可用日期格式(YYYY-MM-DD、YYYY/MM/DD、YYYY年MM月DD日、YYYY-MM-DD HH:mm:ss)

格式兼容性限制

  • 去重计数 / 求和 / 计数 / 平均值:字段格式只能为「数字」或「货币」。
  • 最大值 / 最小值:格式可为「数字」「货币」;当源字段为日期类型时还可选「日期」。
  • 不支持「百分比」格式
  • 原值 / 去重模式的显示效果完全跟随引用字段原始类型(见下一节)。

六、显示与渲染

查找字段为只读单元格,其展示形式取决于计算方式:

  • 原值 / 去重模式:按引用字段的原始类型结构化渲染:
    • 单选 / 多选 → 彩色标签
    • 成员 / 协作者 → 头像 + 名称
    • 附件 → 缩略图 + 名称
    • 复选框 → 是 / 否
    • 数字 → 按源字段精度格式化
    • 日期 → 按源字段日期格式格式化
  • 聚合模式:显示格式化后的字符串(含货币符号、指定小数位等)。
  • 计算结果为空时显示 -

七、预览

在配置查找字段时,若当前记录已有关联数据,可点击「预览结果」实时查看计算结果,便于确认配置是否正确。预览需满足:

  • 字段已保存(有字段 ID);
  • 提供了当前记录 ID;
  • 已选择源数据表与引用字段。

八、典型示例:按项目汇总任务工时

场景:A 表为「项目」,B 表为「任务」,B 表通过关联字段「所属项目」指向 A 表。现在需要在 A 表中统计每个项目下所有任务的工时合计。

配置步骤

  1. 在 A 表点击「添加字段」,选择字段类型「查找」。
  2. 源数据表:选择 B 表(任务)。
  3. 引用字段:选择 B 表的「工时」字段。
  4. 过滤条件:字段选择 B 表的「所属项目」(关联字段),操作符选择「等于」,值类型选择「当前记录」
  5. 计算方式:选择「求和」。
  6. 保存。

配置完成后,A 表每一行项目记录都会汇总「所属项目」指向自己的那些任务的工时。

常见误区

不要直接用「所属项目 = 项目名称」这类配置。B 表的「所属项目」存的是 A 表的记录 ID,而「项目名称」是文本,两者直接比较永远不会相等,会导致汇总结果为空。请改用「当前记录」。

九、与关联字段的关系

  • 查找字段通常与关联字段配合使用,但源表并不强制要求当前表已创建关联字段
  • 源数据表必须是同一 Base 下的其他数据表,且不能是当前表本身
  • 用法一(正向限定):当前表存在指向源表的关联字段时,用筛选条件的值类型「当前表字段」把源记录限定到与当前记录关联的范围。
  • 用法二(反向汇总):源表通过关联字段指回当前表时,用筛选条件的「当前记录」值类型实现反向汇总(见第八节示例)。
  • 一个关联字段可被多个查找字段引用。
  • 删除源表中被引用或用于筛选的字段后,依赖它的查找字段会失效(计算结果为空)。

十、字段类型转换

查找字段属于「引用 / 计算类型」,禁止转换为其他字段类型,也禁止被其他类型转换(与关联、汇总、按钮同属锁定类型)。如需调整,请删除后重新创建。详见 字段类型转换规则

使用建议

  • 需要简单引用时使用「原值」模式。
  • 一对多关系需要汇总统计时,使用「求和」「计数」「平均值」等聚合模式。
  • 需要排除部分关联记录时,添加筛选条件。
  • 源表通过关联字段指回本表(如任务表关联项目表)时,筛选条件的值类型使用「当前记录」。
  • 聚合结果为空时,先用「计数」验证筛选结果,再切换为「求和」等数值聚合。

Released under the MIT License.