Как извлечь текст между двумя символами в Excel

Как извлечь текст между двумя символами в Excel

Я пытаюсь извлечь информацию о продукте из "en_US@" и ";", так что, например, если мне дали "en_US@Terminal Block;", я бы хотел вернуть Terminal Block. Мой метод для этого был следующим:

=MID(B2, FIND("en_US@",B2)+6, FIND(";", B2, FIND("@", B2)+1)-FIND("@",B2)-1)

что правильно.

Мой вопрос: могу ли я написать код, включающий «??_??@» в качестве опции для кода, который будет искать, чтобы я искал либо «en_US», либо «??_??», чтобы начать извлечение текста?

решение1

Кажется, это работает:

=IF(SUMPRODUCT( -- ISNUMBER(SEARCH({"en_US@","~?~?_~?~?@"},A1)))>0,MID(A1, FIND("@",A1)+1, FIND(";", A1, FIND("@", A1)+1)-FIND("@",A1)-1),"NA")

Вся магия кроется в бите SUMPRODUCT( -- ISNUMBER(SEARCH({...},cell)))>0, который мы обсудилиздесь

Чтобы выполнить SEARCH() конкретно для символа «?», вам необходимо разделить каждый символ тильдой, поскольку поиск по умолчанию обрабатывает «?» как подстановочный знак.

Единственное, что еще отличается от оригинала, — это начало с IF(), чтобы проверить, найдет ли он одну из последовательностей символов, а затем находит «@».

Связанный контент