I’m working with an Airtable base and need to create a view that shows just the first record from my table. Here’s what my data looks like:
Item | Size | Status
Banana | 2 | Fresh
Grapes | 5 | Ripe
Orange | 4 | Good
I want a custom view that displays only:
Banana | 2 | Fresh
The tricky part is that when I sort the table differently or add new records, the view should automatically update to show whatever record appears first. For instance, if I sort by Size and get:
Item | Size | Status
Banana | 2 | Fresh
Orange | 4 | Good
Grapes | 5 | Ripe
Then my single record view should show Banana | 2 | Fresh.
The view should automatically switch to Lemon | 1 | Fresh.
I tried using formulas with FIRST() function but it doesn’t exist. Also attempted filtering by record ID but that doesn’t work when sorting changes. Has anyone figured out how to do this in Airtable?
hmm ive been wrestling with this too and honestly airtable is pretty limited here. one hacky solution i found is using a formula field with RECORD_ID() to grab the lowest record id, then filter by that. not perfect tho since record ids dont always match your sort order but might work depending on how ur data flows in
I’ve dealt with this limitation before and found another approach that works well. Create a new number field and use an automation to assign sequential numbers based on your sort criteria - so the first record gets 1, second gets 2, etc. The automation runs whenever records are added or modified and recalculates these sequence numbers according to your current sort order. Then just filter your view to show only records where this sequence field equals 1. The beauty of this method is that it adapts to any sorting changes you make since the automation recalculates the sequence based on whatever field you’re sorting by. I’ve used this successfully across multiple bases where we needed to highlight top performers or most recent entries. The setup takes about 10 minutes but once it’s running you don’t have to think about it again. Much more reliable than trying to work with record IDs or other static identifiers.
There’s actually a simpler method using just views and filtering without needing automations or helper tables. Create a formula field that combines your sort criteria with a timestamp or autonumber field to establish precedence. For example, if sorting by Size, use something like CONCATENATE(LPAD({Size}, 10, "0"), LPAD({Auto Number}, 10, "0")). This creates a unique sortable string where the first part represents your primary sort and the second part breaks ties consistently. Then use MIN() in another formula field that references this concatenated value across your entire table - though you’ll need to hardcode the comparison against your known data range. Filter your view to show only records where these values match. I’ve implemented this approach in production bases and it handles dynamic sorting changes without the overhead of automations running constantly. Takes some initial setup to get the formula right but performs better than automation-based solutions.
I ran into this exact issue last year when building a dashboard that needed to pull the most recent project status.
The cleanest approach I found was using a rollup field combined with a linked table. Create a helper table with just one record, then link all your main records to it. Use a rollup field with MAX() or MIN() aggregator to grab the value you want to sort by.
Then add a formula field in your main table that checks if the current record’s sort value matches the rollup result. Something like:
IF({Size} = {Rollup Field}, "First", "")
Filter your view to show only records where this formula equals “First”.
This updates automatically when you add records or change data. Works way better than automations since there’s no delay and it handles multiple users editing simultaneously without conflicts.
The only downside is you need that extra helper table, but it’s worth it for the reliability.
Unfortunately, Airtable doesn’t have a built-in way to dynamically show only the topmost record from a sorted view. The platform lacks functions like FIRST() or TOP() that would make this straightforward.
What I’ve done as a workaround is create an automation that triggers whenever records are added or modified. The automation updates a checkbox field called “Is First” - it unchecks all records first, then checks only the record that appears at position 1 based on your desired sort order. You can then create a filtered view showing only records where “Is First” is checked.
This requires setting up the automation logic to mimic your sorting criteria, but it works reliably once configured. The view updates automatically whenever your data changes, which sounds like exactly what you need for your dynamic first-record display.