Extraia apenas números do texto (string)

No Excel, você pode usar fórmulas para extrair o número de um valor com texto e números combinados. No exemplo a seguir, usamos uma fórmula para obter 1984 do valor “TPS1984”.

extrair apenas números

Fórmula para extrair números do texto

 =TEXTJOIN("",TRUE,IFERROR((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1),""))

Neste tutorial, entenderemos essa fórmula em detalhes. E para entendê-lo temos que dividi-lo em várias partes:

  1. Primeiro, temos a função LEN para obter o número de caracteres do valor.
    formula-to-extract-numbers-from-a-string
  2. Depois disso, INDIRETO usa uma referência de célula usando 1 e 7 (retornado pelo LEN).
    indirect-uses-a-cell-reference
  3. Então a função ROW usará INDIRETO e retornará uma matriz de números começando com 1 e terminando com 7.
    row-function-returns-the-array
  4. Agora o MID usará esse array e retornará um novo com os valores da célula que você se referiu.
    mid-returns-new-one-with-value
  5. A seguir, temos uma fórmula de multiplicação simples para multiplicar o array por 1. Com esta multiplicação simples, você obtém um novo array onde terá #VALUE! O erro para valores de texto e números permanecerá intacto.
    multiply-the-array
  6. A partir daqui, a função IFERROR converterá os valores de erro em valores vazios.
    iferror-to-convert-errors-into-blank
  7. E no final, TEXTJOIN irá combinar os valores, e você terá apenas números no resultado.
    extract-numbers-in-older-excel-versions

A fórmula acima funciona apenas para a versão Excel 2019 e superior. Isso ocorre porque estamos usando TEXTJOIN, indisponível em versões anteriores.

Se desejar um valor para parte da fórmula, selecione essa parte e pressione a tecla de atalho F9.

TEXTJOIN é uma função volátil que altera o valor quando você atualiza uma célula na planilha. Isso pode tornar sua pasta de trabalho um pouco lenta.

Mas e se eu usar uma versão anterior (2007, 2010, 2013, 2016)

Se você estiver usando versões anteriores, deverá usar uma fórmula diferente. Uma fórmula como esta:

 =IF(SUM(LEN(A1)-LEN(SUBSTITUTE(A1, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A1, LARGE(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1))* ROW(INDIRECT("$1:$"&LEN(A1))),0), ROW(INDIRECT("$1:$"&LEN(A1))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A1)))/10),"")
 =SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*ROW(INDIRECT("1:"&LEN(A1))),0),ROW(INDIRECT("1:"&LEN(A1))))+1,1)*10^ROW(INDIRECT("1:"&LEN(A1)))/10)

As duas fórmulas acima funcionam bem com diferentes tipos de valores. Eu testei da seguinte maneira.

fórmulas com valores diferentes

Na célula A1 acima temos um valor complexo composto por texto, números e símbolos e temos apenas números no resultado.

Obtenha o arquivo Excel

Download

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *