I have a formula working to extract an email address from a string. It's a super long formula with nested if/find/substitute/replace etc. Is there a different perhaps better way to do this?

When I get the data all periods have been replaced with underscores so I have to replace the underscore in the domain name with a dot/period. For example, @gmail_com will end up being @gmail.com. Also, there are some colons and/or dashes. I've accounted for up to 6 underscores but I've seen at least one where there are more than that so I'll have to nest another statement. At this point I'm actually just manually changing any that my formula doesn't handle. There seems to only be a handful so I may just leave it as it is.

I use the colons and dashes as breaking points where i separate the string and remove a portion. For example, at the first dash, remove everything to the left. And the next dash remove everything to left. Etc, etc. I've attached an example.

In the end, I have to account for any number of underscores, colons or dashes and replace any underscores in the domain portion of the email address. Appreciate any comments or suggestions.

extract email address example.xlsx