Como extrair texto entre dois caracteres no Excel

0

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

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

que está correto.

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

    
por user606575 15.06.2016 / 17:25

1 resposta

2

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 SUMPRODUCT (- ISNUMBER (SEARCH ({...}, cell))) > 0 bit, discutido aqui

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

A única outra coisa que mudou do seu original é começar com um IF () para ver se ele encontra uma das seqüências de caracteres, então encontra o "@".

    
por 15.06.2016 / 18:14