I don’t think there is another way to achieve this using the default functions.
An alternative would be a custom API solution or something like Zapier.
I don’t think there is another way to achieve this using the default functions.
An alternative would be a custom API solution or something like Zapier.
Hey @Tuur I found a way!
To extract the first hashtag word, use the following function madness and replace {Post Text} with the name of your field.
IF(AND(FIND("#",{Post Text}),FIND(" “,{Post Text},(FIND(”#",{Post Text})))),
MID({Post Text},(FIND("#",{Post Text})),(FIND(" “,{Post Text},(FIND(”#",{Post Text})))-(FIND("#",{Post Text})))),
IF(FIND("#",{Post Text}),
MID({Post Text},(FIND("#",{Post Text})),(LEN({Post Text})+1-FIND("#",{Post Text}))),
BLANK()))
This handles:
- the first hashtag word when there’s a trailing space
- the first hashtag word when there is no trailing space (ie. at the end of the {Post Text})
no hashtag word - blank output

I can’t imagine what function madness we’d need to try extracting multiple hashtags!
Hey @Tuur I found a way!
To extract the first hashtag word, use the following function madness and replace {Post Text} with the name of your field.
IF(AND(FIND("#",{Post Text}),FIND(" “,{Post Text},(FIND(”#",{Post Text})))),
MID({Post Text},(FIND("#",{Post Text})),(FIND(" “,{Post Text},(FIND(”#",{Post Text})))-(FIND("#",{Post Text})))),
IF(FIND("#",{Post Text}),
MID({Post Text},(FIND("#",{Post Text})),(LEN({Post Text})+1-FIND("#",{Post Text}))),
BLANK()))
This handles:
- the first hashtag word when there’s a trailing space
- the first hashtag word when there is no trailing space (ie. at the end of the {Post Text})
no hashtag word - blank output

I can’t imagine what function madness we’d need to try extracting multiple hashtags!
Good job! Multiples are difficult with the default functions because you can’t use repeating or recursive logic (unless there is some predefined maximum of course).
By the way, in most cases I prefer multiple hidden (helper) fields with smaller formulas instead of one big formula, so other people can sort of follow it too. :winking_face:
Good job! Multiples are difficult with the default functions because you can’t use repeating or recursive logic (unless there is some predefined maximum of course).
By the way, in most cases I prefer multiple hidden (helper) fields with smaller formulas instead of one big formula, so other people can sort of follow it too. :winking_face:
Agree on hidden helper fields to make it easier to follow. In Airtable, if new fields added to a table weren’t added to all views, I’d take this approach more often.
As well as First hashtag, I’ve used a similar approach for a First @mention
formula field.
IF(AND(FIND("@",{Post Text}),FIND(" ",{Post Text},(FIND("@",{Post Text})))),
SUBSTITUTE(MID({Post Text},(FIND("@",{Post Text})),(FIND(" ",{Post Text},(FIND("@",{Post Text})))-(FIND("@",{Post Text})))),":",""),
IF(FIND("@",{Post Text}),
SUBSTITUTE(MID({Post Text},(FIND("@",{Post Text})),(LEN({Post Text})+1-FIND("@",{Post Text}))),":",""),
BLANK()))
In addition to the same 3 situations handled in the First hashtag extraction, the SUBSTITUTE() function removes any trailing “:” character.