Como extrair texto entre dois caracteres no Excel

Como extrair texto entre dois caracteres no Excel

Estou tentando extrair informações do produto entre "en_US@" e ";" então, por exemplo, se eu recebesse "en_US@Terminal Block;" Eu gostaria que o bloco terminal fosse devolvido. Meu método para fazer isso foi:

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

qual é correto.

Minha pergunta é: posso escrever um código para incluir "??_??@" como uma opção para o código procurar, então eu procuraria "en_US" ou "??_??" iniciar a extração do texto?

Responder1

Isso parece estar funcionando:

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

A mágica está no bit SUMPRODUCT( -- ISNUMBER(SEARCH({...},cell)))>0, discutidoaqui

Para SEARCH() especificamente para um "?", você deve delimitar cada um com um til, já que a pesquisa trata "?" como um curinga por padrão.

A única outra coisa que mudou em relação ao original foi começar com um IF() para ver se encontra uma das sequências de caracteres e depois encontra o "@".

informação relacionada