- Getting started with Airtable
- Introduction to Airtable basics
- Contacting Airtable Support Updated
- Airtable home screen
- Glossary of Airtable terminology
- Airtable technical requirements
- Feature differences between Airtable on desktop and mobile
- Airtable keyboard shortcuts
- Using Markdown in Airtable
- Adding descriptions in Airtable
- Finding Airtable IDs
- Airtable Automations
- Automations Overview
- Automation feature walkthroughs
- Integrated automation walkthroughs
- Airtable automation walkthroughs
- Linking existing records using automations
- Conditional groups of automation actions
- Repeating groups of Airtable automation actions
- Creating recurring records using automations
- How to delay Airtable automation runs
- Prevent automations from triggering by mistake
- Use automations to timestamp status updates
- Automation Triggers
- Airtable Triggers
- Airtable automation trigger: When record matches conditions
- Airtable automation trigger: When a form is submitted
- Airtable automation trigger: When record created
- Airtable automation trigger: When record updated
- Airtable automation trigger: When record enters view
- Airtable automation trigger: At scheduled time
- Airtable automation trigger: When webhook received
- Airtable automation trigger: When a button is clicked
- Airtable automation trigger: When email received Updated
- Integrated Triggers
- Airtable Triggers
- Automation Actions
- Airtable Actions
- Airtable automation action: Send email Updated
- Airtable automation action: Create record
- Airtable automation action: Update record
- Airtable automation action: Find records
- Airtable automation action: Sort list
- Airtable automation action: Run a script Updated
- Airtable automation action: Generate with AI
- Integrated Actions
- Airtable automation actions: Slack
- Airtable automation actions: Google Workspace
- Airtable automation action: Send MS Teams message
- Airtable automation actions: Outlook
- Airtable automation actions: Jira Cloud
- Airtable automation actions: Jira Server / Data Center
- Airtable automation actions: Salesforce
- Airtable automation action: Create post in Facebook Pages
- Airtable automation actions: GitHub Issues
- Airtable automation action: Hootsuite post
- Airtable automation action: Send Twilio SMS
- Airtable Actions
- Airtable Bases
- Using Airtable Cobuilder
- Airtable bases overview
- Creating and managing Airtable bases
- Structuring bases in Airtable
- Moving bases between workspaces in Airtable
- Creating and managing tables in Airtable
- Creating Airtable base share links
- Importing third-party data into Airtable
- Using insights in Airtable
- Troubleshooting Airtable base performance
- Airtable Betas
- Collaborating in Airtable
- Airtable Enterprise Support
- General Enterprise information
- External badging in Airtable
- Using app library and components in Airtable Updated
- Ask an Expert beta overview
- European data residency at Airtable
- Airtable user groups overview
- Airtable Enterprise API
- Creating and managing data retention policies in Airtable
- eDiscovery APIs in Airtable
- Airtable and data loss prevention
- Accessing Enterprise audit logs in Airtable
- Set up Jira Server / Data Center to connect with Airtable
- Admin panel pages
- Airtable admin panel overview
- Users - Airtable enterprise admin panel
- Airtable admin panel user details
- Groups - Airtable admin panel
- Workspaces - Airtable Enterprise Admin Panel
- Bases - Airtable admin panel
- Interfaces - Airtable admin panel
- Data sets - Airtable admin panel
- Managed apps - Airtable admin panel
- Components - Airtable admin panel
- Reports - Airtable admin panel
- Settings - Airtable admin panel Updated
- Managing Enterprise organizations
- Managing Enterprise admins in admin panel
- Using Organizations
- Organization branding for apps in Airtable
- Enterprise Hub in Airtable
- Enterprise Hub: Org unit assignment with user groups Updated
- Deactivating, removing access, and reactivating users in the admin panel
- Managing user access to workspaces and bases
- Airtable Enterprise Key Management Updated
- Custom terms of use New
- Enterprise SSO
- General Enterprise information
- Airtable Extensions
- Airtable Fields
- Fields Overview
- Attachment
- Date-based fields
- Formula
- Getting Started with Formulas
- Formula Foundations
- The essentials of Airtable formulas
- Formula writing tips for beginners
- Troubleshooting formulas
- Basic calculations
- Conditional statements
- Logical arguments
- Working with dates
- Displaying DATETIME_FORMAT using the date field in Airtable
- Working with date functions in Airtable
- Calculating the difference between dates in Airtable
- Supported DATETIME_DIFF unit specifiers in Airtable
- Supported DATETIME_FORMAT format specifiers in Airtable
- Using the DATETIME_PARSE() formula in Airtable
- Working with timezones
- Record functions
- Text functions
- Numeric functions
- Common Solutions: Beginner
- Common Solutions: Intermediate
- Common Solutions: Advanced
- Long Text Field
- Linked Record Field
- Linking records in Airtable
- Limiting linked record selection to a view in Airtable
- Dynamic filtering in linked record fields
- Linking to one, many, or a subset of Airtable records
- Converting existing fields to Airtable linked records
- Reordering record links in Airtable
- Understanding linked record relationships in Airtable
- Number-Based Fields
- Other Fields
- Rollup, lookup, and count fields
- Select and user fields
- Integrating with Airtable
- API
- Getting started with Airtable's Web API
- Creating personal access tokens
- Airtable Webhooks API Overview
- Service accounts overview
- Airtable Web API - Using filterByFormula or sort parameters
- Airtable API Deprecation Guidelines
- Airtable API: Common troubleshooting
- Managing API call limits in Airtable
- URL length limitations for web API requests
- Integration services
- Third-party integrations via OAuth overview
- Troubleshooting disconnected OAuth integrations in Airtable
- Options for integrating with Airtable
- Third-party integrations - Common troubleshooting
- Low-code integrations - Common troubleshooting
- Integrating Airtable with external calendar applications
- Visualizing records from Airtable in Tableau
- Visualizing Airtable records in Microsoft Power BI & Power Query
- Integrating HubSpot with Airtable
- Using Zapier to integrate Airtable with other services
- Using Zapier's Multi-Step Zaps to find and update records
- Using IFTTT to integrate Airtable with other services
- Integrating with AWS Lambda & DynamoDB
- Developer tools
- API
- Airtable Interface Designer
- Interface Designer overview articles
- Interface layouts
- Interface elements
- Adding and removing elements in interfaces
- Adding layouts to interfaces
- Formatting elements in interfaces
- Interface element: Button
- Interface element: Calendar
- Interface element: Chart
- Interface element: Filter
- Interface element: Gallery
- Interface element: Grid
- Interface element: Kanban
- Interface element: Number
- Interface element: Record picker
- Interface element: Text
- Interface element: Timeline
- Learning and Resources
- Managing Airtable
- Airtable Policy
- Airtable Records
- Airtable Sync
- Airtable Views
- Airtable Workspaces
- Print
- Share
- DarkLight
- PDF
Finding and replacing text in Airtable
- Updated on 26 Aug 2024
- 4 Minutes to read
- Print
- Share
- DarkLight
- PDF
All plan types | |
Platform(s) | Web/Browser, Mac app, and Windows app |
Related reading |
This article covers how to find, search for, and replace text within a string to streamline your team's and organization's work.
Using FIND() and SEARCH() in Airtable
Using FIND() and SEARCH()
The FIND
and SEARCH
functions locate any character in a string of text and tells you where the first occurrence exists in that string. While SEARCH
will only provide the character position if it finds one, FIND
will provide the number zero if it finds nothing at all.
This makes FIND
a better candidate for most formulas because it offers a result that will prevent multi-function formulas from displaying an error. Aside from that, and their names, these functions are otherwise identical. For simplicity, we'll focus on using FIND
. Let's begin with an example string of text to work with:
Hello, world!
If you wanted to find the position of the comma in that string you'd just use the FIND function like this:
FIND ( "," , "Hello, world!" )
In this case, the FIND function will provide the following result:
6
We get the number 6 because the comma in the example is the 6th character in that string of text. If we, instead, looked for the exclamation point the formula would provide the number 13 instead. A common use of FIND
is to extract the file name from an attachment in a record using a formula like this:
LEFT ({Attachment Field},FIND( "(" ,{Attachment Field}) -1 )
File names always follow the same structure in Airtable, and look like this:
We can therefore use FIND
to identify a character in that file name string, like the opening parenthesis, as a sort of placeholder in order to extract only the file name from that entire string. Here's the formula again for easy reference:
LEFT({Attachment Field},FIND("(", {Attachment Field})-1)
FIND
looks for the opening parenthesis and returns the number that it falls on within the string. LEFT
then uses that number to know how many characters to extract from the entire string. This creates a dynamic way to always extract the right amount of character for any file name!
Note that this formula only accounts for attachment fields with a single file attached.
Using REPLACE() and SUBSTITUTE() in Airtable
Note
Before reading and understanding the section below, you may want to read the section about the
FIND()
andSEARCH()
functions available here.
Using REPLACE() and SUBSTITUTE()
The REPLACE
and SUBSTITUTE
functions accomplish very similar but different tasks. Put simply, you use REPLACE
to replace a single instance of some amount of text (e.g. a name) and you use SUBSTITUTE
when you want to replace them all. Take this text string for example:
His name was George.
What if his name wasn't George but, rather, Billy? We can use the REPLACE
function to fix that:
REPLACE("His name was George", 14, 6, "Billy")
That formula would provide the result we want:
His name was Billy
The SUBSTITUTE function can do the same thing:
SUBSTITUTE("His name was George", "George", "Billy")
In this case, using SUBSTITUTE
makes more sense because George only appears once in the text and it doesn't require us to locate any exact character positions. If George appeared multiple times and we only wanted to change one instance of George to Billy, using REPLACE
would make more sense.
You can use both functions on text fields in your base like this:
REPLACE({Text Field}, 14, 6, "Billy")
SUBSTITUTE({Text Field}, "George", "Billy")
SUBSTITUTE, on its own, will successfully replace every instance of George with Billy in every record using that text field. If it finds nothing, it will replace nothing and leave the text as-is.
REPLACE, on the other hand, will replace the characters at the specified location with Billy in every record. You probably won't want that and will need to locate where the first instance of George begins if you want to ensure consistent replacements. This formula meets those criteria:
REPLACE({Text Field}, FIND("George", {Text Field}), 6, "Billy")
In this case, we only need to find the starting location of George because we know the count will always remain the same. After all, George is and always will be a six letter name. When you want to replace a single instance some text, you only need one other function to do it consistently throughout all your records.
Nesting functions in Airtable
Nesting functions
In order to substitute out different values within the same formula, you're able to nest these functions similarly to how you would nest an IF statement.
For example, if you wanted to substitute out vertical pipes ||
for double forward slashes //
, and periods .
with commas ,
you could nest those two substitutions together in the same formula.
SUBSTITUTE(SUBSTITUTE ({Field Name}, "||" , "//" ),"." , "," )
Notice that only the inner-most function references the field name, while the outer function works by substituting the result of the function nested within it.
See the example below for a more dramatic example of a complex nested substitute formula.
While the formula above may look intimidating, it's actually quite straightforward. The inner-most function SUBSTITUTE({name},"%","%25")
references the field where the target text exists. Then, each of the other nested functions above it substitute out text from the result of each of the functions within it.