Cómo extraer texto entre dos caracteres en Excel

Cómo extraer texto entre dos caracteres en Excel

Estoy intentando extraer información del producto entre "en_US@" y ";" Así, por ejemplo, si me dieran "en_US@Terminal Block;" Me gustaría que me devolvieran el bloque de terminales. Mi método para hacer esto fue:

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

cual es correcta.

Mi pregunta es ¿puedo escribir código para incluir "??_??@" como una opción para que el código busque, de modo que buscaría "en_US" o "??_??" para iniciar la extracción de texto?

Respuesta1

Esto 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")

La magia está en SUMPRODUCT( -- ISNUMBER(SEARCH({...},cell)))>0 bit, discutidoaquí

Para BUSCAR() específicamente un "?", debe delimitar cada uno con una tilde ya que la búsqueda trata "?" como comodín de forma predeterminada.

La única otra cosa que cambió con respecto al original es comenzar con IF() para ver si encuentra una de las secuencias de caracteres y luego encuentra la "@".

información relacionada