Como extrair o valor numérico após uma determinada string dentro de uma frase em uma célula do Excel?

Como extrair o valor numérico após uma determinada string dentro de uma frase em uma célula do Excel?

eu quero extrairo valor numérico imediatamente após a string "ABS" (diferencia maiúsculas de minúsculas)dentro de uma grande quantidade de texto em uma célula de uma tabela do Excel.

Nem todas as células podem conter a string que estou procurando, portanto, é necessário um filtro.

O conteúdo da célula é mais ou menos assim:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ante mi, laoreet nec tristique et, sodales at dui. Vestíbulo ullamcorper agosto e nibh auctor laoreet ornare nisi posuere. Aliquam convallis nisl auctor mauris pharetra faucibus. Nullam nulla dolor, varius viverra facilisis nec, viverra in torturador. Sollicitudin inteiro, elit in tempor interdum, sapien justo luctus justo, id varius nisi mauris at ipsum. Vivamus tincidunt neque sed felis accumsan tempus.

ABS: 1,5, ADS: 2,5, SR: 11

Pellentesque habitante morbi tristique senectus et netus et malesuada famas ac turpis egestas. Inteiro vestibulum felis et lorem pretium molestie. Nulla imperdiet, magna vel accumsan ornare, augue quam ornare justo, vitae volutpat turpis orci quis nibh. Nullam vitae diam et ligula comodo pretium. Etiam et luctus dui.

O problema é que como os conteúdos são inseridos manualmente, eles podem variar em estrutura, com pequenas variações como:

ABS: 1,5 (Espaço após ABS)

ou

ABS é 1,5 ('é' em vez de dois pontos)

ou

ABS = 1,5 ('=' em vez de dois pontos)

ou

ABS 1.5 (valor numérico imediatamente após o texto sem dois pontos)

.... etc.

O valor numérico está entre 0-8,5 com incrementos de 0,5 (ou seja, 0, 0,5, 1,0, ... 7,5, 8,0, 8,5).

Eu tentei uma combinação das funções left() e find(), mas não sei como extrair os números depois de encontrar a string "ABS". Se alguém puder me ajudar ou me indicar uma direção, eu agradeceria muito. Obrigado!

Responder1

Esta fórmula encontra ABS.... então encontra o primeiro valor numérico depois disso e então pega o número que começa aí (até 5 caracteres)

=LOOKUP(10^10,MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890,FIND("ABS",A1))),{1,2,3,4,5})+0)

Assume dados em A1

Se o número tiver mais de 5 caracteres, estenda a {1,2,3,4,5}parte

Se você quiser evitar erros se o ABS não for encontrado, tente agrupar a função IFERROR

=IFERROR(LOOKUP(10^10,MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890,FIND("ABS",A1))),{1,2,3,4,5})+0),"")

informação relacionada