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

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

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

У меня вопрос, могу ли я написать код для включения "??_??@ "в качестве опции для кода, чтобы искать, поэтому я бы искал либо" en_US "или"??_??"начать извлечение текста?

1 ответ1

2

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

=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({...}, ячейка)))> 0 бит, обсуждается здесь

Чтобы специально ПОИСК () для "?"Вы должны разделить каждого с тильдой, так как поиск обрабатывает"?"подстановочный знак по умолчанию.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .