Hi Airtable folks,
I’ve got this really fun bookkeeping base I’ve created, which I use in conjunction with Fintable.io (a way to push bank transactions into Airtable – highly recommend!). Since Fintable downloads the transaction names from my bank statements in all sorts of different ways depending on how the banks format them, I wanted to create a formula to extract the Vendor name from when I receive or send money through Zelle. The thing is that this can show up in a variety of ways:
ZELLE FROM FIRSTNAME LASTNAME ON DATE
ZELLE TO FIRSTNAME LASTNAME ON DATE
Zelle Payment to FirstName LastName
Zelle Payment from FirstName LastName
Zelle Payment to FirstName
Zelle Payment from FirstName
And so on…
What I’m getting stuck on is how to combine two formulas I ended up creating: one that returns both the first name and last name of the person (but when there is no last name, returns some of the random extra characters after the first name), and one that returns only the first name, whether there is a last name or not present in the transaction name. For the life of me I couldn’t find a way to nest these two together! So I ended up creating two separate formula fields, and a third one that checks when one of the two contains numerals (meaning that record has a first name only, and that formula accidentally grabbed extra characters after the name), so it can return the results from the first-name-only formula. It works, but it feels very roundabout and inefficient. Anyone willing to help me put them together? Full disclosure: I started these on my own but used a bit of AI help to develop them, which is why some aspects of them work but I can’t quite decipher them on my own to solve my issue. Formulas below:
Zelle Formula 1:
IF(FIND("ZELLE FROM", {*Name}&""), MID({*Name},12,(FIND(" ON", {*Name})-12)),
IF(FIND("ZELLE TO", {*Name}&""), MID({*Name},9,(FIND(" ON", {*Name})-9)),
IF(FIND("Zelle payment to", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name}))) + 1) - 1)),
IF(FIND("Zelle payment to", {*Name}&""),
IF(FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name}))) & " ",
TRIM(LEFT(MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})) & " ") - 1)),
TRIM(MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
FIND(" ", {*Name} & " ", FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to ")) - (FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "))))),
IF(FIND("ZELLE FROM", {*Name}&""), MID({*Name},12,(FIND(" ON", {*Name})-12)),
IF(FIND("Zelle payment from", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("Zelle payment from", {*Name}) + LEN("Zelle payment from "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle payment from", {*Name}) + LEN("Zelle payment from "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("Zelle payment from", {*Name}) + LEN("Zelle payment from "),
LEN({*Name}))) + 1) - 1)),
IF(FIND("Zelle", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("Zelle", {*Name}) + LEN("Zelle "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle", {*Name}) + LEN("Zelle "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("Zelle", {*Name}) + LEN("Zelle "),
LEN({*Name}))) + 1) - 1)),
IF(FIND("ZELLE", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("ZELLE", {*Name}) + LEN("ZELLE "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("ZELLE", {*Name}) + LEN("ZELLE "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("ZELLE", {*Name}) + LEN("ZELLE "),
LEN({*Name}))) + 1) - 1))
))))))))
Zelle Formula 2:
IF(FIND("Zelle payment to", {*Name}&""),
IF(FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name}))) & " ",
TRIM(LEFT(MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})) & " ") - 1)),
TRIM(MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
FIND(" ", {*Name} & " ", FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to ")) - (FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "))))),
IF(FIND("ZELLE FROM", {*Name}&""), MID({*Name},12,(FIND(" ON", {*Name})-12)),
IF(FIND("Zelle payment from", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("Zelle payment from", {*Name}) + LEN("Zelle payment from "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle payment from", {*Name}) + LEN("Zelle payment from "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("Zelle payment from", {*Name}) + LEN("Zelle payment from "),
LEN({*Name}))) + 1) - 1)),
IF(FIND("Zelle payment to", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("Zelle payment to", {*Name}) + LEN("Zelle payment to "),
LEN({*Name}))) + 1) - 1)),
IF(FIND("Zelle", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("Zelle", {*Name}) + LEN("Zelle "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("Zelle", {*Name}) + LEN("Zelle "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("Zelle", {*Name}) + LEN("Zelle "),
LEN({*Name}))) + 1) - 1)),
IF(FIND("ZELLE", {*Name}&""),
TRIM(LEFT(MID({*Name},
FIND("ZELLE", {*Name}) + LEN("ZELLE "),
LEN({*Name})),
FIND(" ", MID({*Name},
FIND("ZELLE", {*Name}) + LEN("ZELLE "),
LEN({*Name})) & " ", FIND(" ", MID({*Name},
FIND("ZELLE", {*Name}) + LEN("ZELLE "),
LEN({*Name}))) + 1) - 1))
))))))
Thanks for the help!