Eu tenho que descobrir se o texto das minhas células é um valor numérico e queria usar um método não VBA elegante que não impeça seu estado ou valor atual.
O que eu descobri é que a ISNUMBER()
função só funciona se as células estiverem com formatação numérica ou se não houver espaços se a formatação de texto, por exemplo:
Nos três primeiros que usei =ISNUMBER(...)
e minha última tentativa é =ISNUMBER(TRIM(...))
.
O único método que usei que não usa o VBA é substituir meus valores atuais usando texto para colunas e, em seguida, usar a =ISNUMBER()
função
Nota: Sou proficiente em VBA e Excel e entendo que poderia criar uma função definida pelo usuário. Mas não quero, pois isso impõe uma pasta de trabalho ou um suplemento de macro necessário para instalação, o que posso e já fiz em alguns casos.
Agradeço qualquer conselho, opinião (mesmo que me digam que não pode ser feito) ou soluções VBA (no entanto, não serão marcadas como resposta).
ISNUMBER
é a raramente usadaN
. Algo assim=NOT(ISERR(N(--A1)))
=N(-A1)
. Também não sabia que existia.Respostas:
Tente multiplicar o valor da célula por 1 e, em seguida, execute as funções
IsNumber
eTrim
, por exemplo:=IsNumber(Trim(A1)*1)
fonte
trim
. Meus cumprimentos.Supondo que o valor que você deseja converter esteja em A1, você pode usar a seguinte fórmula:
=ISNUMBER(VALUE(TRIM(CLEAN(A1)))
Aqui, as funções clean e trim estão removendo espaços em branco e nenhum caractere imprimível. O valor da função converte uma string em um número e, com a string convertida, podemos verificar se o valor é um número.
fonte
=VALUE(A1)
pois meus dados não serão necessáriosCLEAN()
. Eu não sabia que aVALUE()
função existia. Apenas para observar oTRIM()
que não faz nada, já que os espaços são ignorados.A resposta mais curta que tenho para minha pergunta é:
Obrigado brettdj
fonte
Eu sei que este post é antigo, mas achei muito útil. Nesse caso, eu tinha uma fórmula que retornava (333), mesmo que seja um número e ISNUMBER dirá que é um número, mesmo que eu não quisesse uma resposta se tivesse. caracteres que não sejam dígitos. O seguinte funcionou para mim.
Funciona se houver QUALQUER caractere além de dígitos. Se você quer apenas um falso verdadeiro, solte o IF
Como David Zemens afirmou
Funciona, mas se houver um "-" ou se o número estiver entre parênteses, ele dirá que é um número.
Espero que isso ajude você ou outras pessoas.
fonte
se alguém precisar filtrar células que contenham algo que não seja numérico:
resultado decimal e negativo
FALSE
fonte