Tengo que averiguar si el texto de mis celdas es un valor numérico y quería usar un método elegante que no sea VBA que no impida su estado o valor actual.
Lo que he encontrado es que la ISNUMBER()
función solo funciona si las celdas tienen formato de número o no tienen espacios si el formato de texto, por ejemplo:
Para los tres primeros que he usado =ISNUMBER(...)
y mi último intento es =ISNUMBER(TRIM(...))
.
El único método que he usado que no usa VBA es anular mis valores actuales usando texto en columnas y luego usar la =ISNUMBER()
función.
Nota: Soy competente con VBA y Excel y entiendo que podría crear una función definida por el usuario. Pero no quiero, ya que esto impone una macro requiere un libro de trabajo o un complemento para instalar, lo que puedo y he hecho en algunos casos.
Apreciaré cualquier consejo, pensamiento (incluso si me dicen que no se puede hacer) o soluciones VBA (sin embargo, no se marcarán como respuesta).
ISNUMBER
los raramente utilizadosN
. Algo así=NOT(ISERR(N(--A1)))
=N(-A1)
. Tampoco sabía que existía.Respuestas:
Intente multiplicar el valor de la celda por 1 y luego ejecute las funciones
IsNumber
yTrim
, por ejemplo:=IsNumber(Trim(A1)*1)
fuente
trim
. Mis saludos.Suponiendo que el valor que desea convertir está en A1, puede usar la siguiente fórmula:
=ISNUMBER(VALUE(TRIM(CLEAN(A1)))
Aquí las funciones clean y trim están eliminando espacios en blanco y ninguno de los caracteres imprimibles. El valor de la función convierte una cadena en un número, y con la cadena convertida podemos verificar si el valor es un número.
fuente
=VALUE(A1)
ya que mis datos no serán necesariosCLEAN()
. No sabíaVALUE()
que existía la función. Solo para notarTRIM()
que no hace nada ya que los espacios se ignoran de todos modos.La respuesta más corta que tengo a mi pregunta es:
Gracias brettdj
fuente
Sé que esta publicación es antigua, pero me pareció muy útil en este caso, tenía una fórmula que devolvió (333), a pesar de que es un número y ISNUMBER dirá que es un número, aunque no quería una respuesta si tenía caracteres que no sean dígitos. Lo siguiente funcionó para mí.
Funciona si hay CUALQUIER carácter que no sean dígitos. Si solo quieres un verdadero falso, suelta el IF
Como dijo David Zemens
Funciona pero si hay un "-" o el número está entre paréntesis, dirá que es un número.
Espero que esto te ayude a ti u otros.
fuente
si alguien necesita filtrar celdas que contengan algo que no sea numérico:
resultados decimales y negativos
FALSE
fuente