Je dois savoir si le texte de mes cellules est une valeur numérique et je voulais utiliser une méthode élégante non VBA qui n'entrave pas son état ou sa valeur actuelle.
Ce que j'ai trouvé, c'est que la ISNUMBER()
fonction ne fonctionne que si les cellules sont au format numérique ou n'a pas d'espaces si le formatage du texte est par exemple:
Pour les trois premiers, j'ai utilisé =ISNUMBER(...)
et ma dernière tentative est =ISNUMBER(TRIM(...))
.
La seule méthode que j'ai utilisée qui n'utilise pas VBA est de remplacer mes valeurs actuelles en utilisant du texte dans les colonnes, puis d'utiliser la =ISNUMBER()
fonction.
Remarque: Je maîtrise VBA et Excel et je comprends que je pourrais créer une fonction définie par l'utilisateur. Mais je ne veux pas car cela impose l'installation d'un classeur requis par macro ou d'un complément, ce que je peux et ai fait dans certains cas.
J'apprécierai tous les conseils, pensées (même s'ils me disent que cela ne peut pas être fait) ou les solutions VBA (ne seront pas marquées comme réponse cependant).
ISNUMBER
est rarement utiliséN
. Quelque chose comme ça=NOT(ISERR(N(--A1)))
=N(-A1)
. Je ne savais pas non plus que cela existait.Réponses:
Essayez de multiplier la valeur de la cellule par 1, puis exécutez les fonctions
IsNumber
etTrim
, par exemple:=IsNumber(Trim(A1)*1)
la source
trim
. Mes salutations.En supposant que la valeur que vous souhaitez convertir est en A1, vous pouvez utiliser la formule suivante:
=ISNUMBER(VALUE(TRIM(CLEAN(A1)))
Ici, les fonctions de nettoyage et de suppression suppriment les espaces et aucun caractère imprimable. La valeur de la fonction convertit une chaîne en nombre, et avec la chaîne convertie, nous pouvons vérifier si la valeur est un nombre.
la source
=VALUE(A1)
car mes données n'en auront pas besoinCLEAN()
. Je ne savais pas que laVALUE()
fonction existait. Juste pour noter queTRIM()
cela ne fait rien car les espaces sont ignorés de toute façon.La réponse la plus courte que j'ai à ma question est:
Merci brettdj
la source
Je sais que ce message est ancien mais j'ai trouvé cela très utile dans ce cas, j'avais une formule qui retournait (333), même si c'est un nombre et ISNUMBER dira que c'est un nombre même si je ne voulais pas de réponse si elle avait caractères autres que des chiffres. Ce qui suit a fonctionné pour moi.
Cela fonctionne s'il y a des caractères autres que des chiffres. Si vous voulez juste une vraie fausse goutte, l'IF
Comme l'a déclaré David Zemens
Fonctionne mais s'il y a un "-" ou si le nombre est entre parenthèses, il dira que c'est un nombre.
J'espère que cela vous aide ou aide les autres.
la source
si quelqu'un a besoin de filtrer les cellules contenant tout ce qui n'est pas numérique:
résultat décimal et négatif
FALSE
la source