J'ai un fichier Excel avec lequel je travaille. Il y a une colonne qui contient des chiffres et du texte, parfois l'un ou l'autre. J'essaie d'écrire une fonction qui analyse la partie la plus à gauche de la cellule pour voir si elle commence par un nombre. Je pensais l'avoir mais apparemment pas. Voici ce que j'ai eu:
=IF(ISNUMBER(LEFT(E8,1)), "True", "False")
Cela continue à me jeter un résultat "faux" même si cette cellule particulière, E8, commence par un "3". Qu'est-ce que j'oublie ici?
Essayez ceci:
=IF(ISNUMBER(VALUE(LEFT(E8,1))),"True","False")
L'utilisation de l'instruction IF est redondante. Le moyen le plus simple et efficace d’atteindre le résultat souhaité est:
=ISNUMBER(--LEFT(E8,1))
Il retournera automatiquement TRUE ou FALSE
Notez que vous pouvez obtenir ce dont vous avez besoin avec les éléments suivants:
=NOT(ISERROR(LEFT(E8)*1))
Sinon, LEFT(E8)
est évalué à LEFT(E8,1)
et la multiplication par 1 génère une erreur sur tout élément non numérique.
Si vous avez besoin de votre sortie sous forme de chaînes, mettez à jour comme indiqué ci-dessous:
IF(NOT(ISERROR(LEFT(E8)*1)),"True","False")
MODIFIER
Utiliser ISNUMBER()
est une bonne alternative à NOT(ISERROR())
=ISNUMBER(LEFT(A1)*1)
=IF(ISNUMBER(LEFT(A1)*1),"True","False")
=IFERROR(IF(VALUE(LEFT(E8,1)),"TRUE","FALSE"),"FALSE")