English
English
Appearance
English
English
Appearance
A Lookup field extracts a value from a field in another table and supports aggregation and filtering. It is the core field type for cross-table data linkage and summary analysis, often analogous to "Lookup / Rollup" field.
Real-time & read-only
A Lookup field's value is computed in real time by the system when a record is read, and the cell is not manually editable. After the source data, referenced field, or filter conditions change, the lookup result is recomputed automatically.
The lookup calculation logic is as follows (backend LookupService.compute_lookup_value):
Key point: a Lookup field does not require the current table to already have a Link field pointing to the source table. It scans and filters the source table based on filter conditions, so it can be used independently of Link fields in many scenarios. When the source table has a Link field pointing back to the current table, the Current record value type enables reverse aggregation.
| Setting | Description |
|---|---|
| Source Table | The table to look up from. Must be another table in the same Base (cannot be the current table). |
| Referenced Field | The field in the source table to extract (includes hidden fields). |
| Filter Conditions | Optional, up to 5; empty means all source records are returned. |
| Aggregation | How to aggregate the lookup result (8 modes, see below). |
| Field Format | Available in aggregation modes to format the result (original / distinct auto-follow the source field). |
There are 8 aggregation modes:
| Mode | Description | Result Shape |
|---|---|---|
| Original | Directly display the referenced field value; shows as a list for one-to-many | Array / scalar |
| Distinct | Display values after removing duplicates | Array |
| Distinct Count | Count of unique values after deduplication | Number |
| Sum | Sum numeric referenced values | Number |
| Count | Count the number of matching source records | Number |
| Average | Average numeric referenced values | Number |
| Max | Maximum value (supports numbers and dates) | Number / Date |
| Min | Minimum value (supports numbers and dates) | Number / Date |
Empty result troubleshooting
If an aggregation is empty, check first whether the filter matches anything: switch to Count mode to verify how many records match, then switch to numeric aggregations such as Sum.
Lookup fields support multi-condition filtering on source records; only matching records participate in the calculation.
Each condition consists of three parts:
When switching the field, if the new field type does not support the current operator, the system falls back to "equals"; if the new field is not a Link field, the "Current record" value type falls back to "Current table field". Switching the operator to "is empty / is not empty" clears the compare value (these operators need no value).
There are 7 operators in total, enabled per source field type:
| Operator | Applicable field types |
|---|---|
| Equals | All field types |
| Not equals | All field types |
| Is empty | All field types |
| Is not empty | All field types |
| Contains | Text (single line / long / rich / email / phone / URL) + Select / Member / Link (single select / multi select / member / collaborator / Link) |
| Before | Date types (date / date time / created time / updated time) |
| After | Date types (date / date time / created time / updated time) |
TIP
"Is empty / Is not empty" need no compare value; other operators require a compare value via the value type.
| Value Type | Description | Input control |
|---|---|---|
| Current table field | Compare with the value of a field in the current table | Dropdown to select a current-table field |
| Custom value | Compare with a manually entered fixed value | Rendered by source field type (number → number input, date → date picker, others → text) |
| Current record | Compare with the current record itself. Only available when the condition's source field is a Link field | No input needed |
A Link field stores the record ID of the target table (a single ID or an array of IDs), not the display value. Therefore:
Additionally, when one side of the comparison is a select field (single / multi select, storing option IDs) and the other is text (option name), the system automatically expands both into a candidate set of "option ID + option name" before matching, avoiding never-matching ID-vs-name comparisons.
For non-original / non-distinct modes (distinct count, sum, count, average, max, min), custom result formatting is supported; in original / distinct modes the format auto-follows the source field and cannot be changed.
| Format | Applicable aggregation | Options |
|---|---|---|
| Number | distinct count / sum / count / average / max-min | Decimal places (0–10) |
| Currency | distinct count / sum / count / average / max-min | Currency symbol (e.g. ¥, $, €) + decimal places |
| Date | Only for max / min when the source field is a date type | Date format (YYYY-MM-DD, YYYY/MM/DD, YYYY年MM月DD日, YYYY-MM-DD HH:mm:ss) |
Format compatibility limits
A Lookup field is a read-only cell; its presentation depends on the aggregation mode:
-.When configuring a lookup field, if the current record already has related data, click Preview Result to see the computed value in real time and verify the configuration. Preview requires:
Scenario: Table A is "Projects", table B is "Tasks", and table B has a Link field "Project" pointing to table A. You want to show, on each project row, the total hours of all tasks belonging to that project.
Configuration:
Once configured, each project row aggregates the hours of all tasks whose "Project" link points to it.
Common mistake
Do not configure the condition as "Project = Project Name". The Link field in table B stores the record ID of table A, while "Project Name" is plain text; comparing them directly never matches and the aggregation will be empty. Use Current record instead.
The Lookup field belongs to the "reference / computed" category and is forbidden from being converted to other field types, and from having other types converted into it (locked together with Link, Rollup, and Button). To change it, delete and recreate the field. See Field Type Conversion Rules.