The Problem: Duplicate Values in Lookup Fields
Lookup fields in Airtable are great for surfacing related information, but they can show the same linked value multiple times. Users often expect a simple "show unique" toggle, but it doesn't exist (yet). This guide explains how to deduplicate values in practice and what to do if you need to keep linkability.
Key Concepts
- Lookup fields render values pulled through a linked relationship and intentionally allow duplicates.
- Rollup fields can apply functions like
ARRAYUNIQUE()to aggregate and deduplicate—returning text, not links. - Formulas can transform lookup arrays but cannot turn text back into clickable linked records.
Implication: If you only need a clean text list, use Rollup/Formula. If you need clickable unique links, use a data or automation workaround.
Option A — Rollup with ARRAYUNIQUE (Text Output)
If text is enough, use a Rollup that points to a field you want to dedupe and apply ARRAYUNIQUE(values).
ARRAYUNIQUE(values)
To control separators, wrap with ARRAYJOIN:
ARRAYJOIN(ARRAYUNIQUE(values), ", ")
This yields a deduplicated, readable list—but it's no longer clickable links.
Option B — Helper Field + Rollup (Reliable Deduping)
Some users notice ARRAYUNIQUE() behaves more reliably when used on plain text. Create a small helper field in the linked table and roll that up.
Example (Recipes → Ingredients → Type):
- In
Ingredients, add a Formula{Type Name}that equals the name of the linked{Type}(or a Lookup to{Type}.{Name}that resolves to text). - In
Recipes, Rollup the{Type Name}with:
ARRAYJOIN(ARRAYUNIQUE(values), ", ")
Result: "Dairy, Bread, Vegetable, Meat" instead of repeated entries.
Option C — Keep Links Unique (Workarounds)
If you must keep them as clickable links, you need to curate a unique set in a linked-record field. Two common approaches:
1) Automation (Make/Zapier or Airtable automation)
- Trigger on change to the source links.
- Compute the unique set (use a script step or a Make/Zapier "remove duplicates" action).
- Update a dedicated linked-record field with the unique record IDs.
Pros: stays in Airtable; links remain clickable.
Cons: needs an automation and a second field.
2) Junction Table for Unique Membership
- Create a join table (e.g.,
Recipe ↔ Type) where each record is a unique pair. - Link your main record to this junction, and Rollup/Lookup via the junction.
Pros: fully normalized; no duplicates by design.
Cons: extra table and relationships; slightly more setup.
Quick Reference
| Goal | Recommended approach |
|---|---|
| Clean readable list | Rollup + ARRAYUNIQUE(values) ± ARRAYJOIN |
| Unique but clickable links | Automation that writes a deduped set into a linked field |
| Strict uniqueness by design | Junction table (unique pairs) |
Example Formulas and Patterns
Deduping a lookup into a comma-separated list:
ARRAYJOIN(ARRAYUNIQUE(values), ", ")
Building a helper key (in the linked table) to roll up confidently as text:
CONCATENATE(Name)
Then roll up {Helper Name} with ARRAYUNIQUE.
Opinionated Take
An "Only display unique linked records" toggle in Lookup settings would fit many real-world cases and appears frequently in community requests. Until then, the combination of helper text + rollup or a small automation covers most needs.
Further Reading
- Community context: Remove duplicates in lookup field