2016-05-12 4 views
2

Ich habe eine Excel-Datei, mit der ich arbeite. Es gibt eine Spalte, die Zahlen und Text enthält, manchmal ist es nur eine oder die andere. Ich versuche eine Funktion zu schreiben, die den linken Teil der Zelle scannt, um zu sehen, ob sie mit einer Zahl beginnt. Ich dachte, ich hätte es aber anscheinend nicht. Das ist, was ich hatte:Excel ISNUMBER Funktion mit IF-Anweisung

=IF(ISNUMBER(LEFT(E8,1)), "True", "False") 

Dies setzt sich fort, mich zu werfen ein „falsches“ Ergebnis, obwohl diese bestimmte Zelle, E8, mit einer „3“ beginnt. Was fehlt mir hier?

+1

Try '= IF (ISNUMBER (- LEFT (E8,1)), "True" , "False") ' –

+0

Wofür sind die zwei Striche? –

+0

Das '--' macht dasselbe wie VALUE() ohne die ganze Eingabe. –

Antwort

2

Probieren Sie dies aus:

=IF(ISNUMBER(VALUE(LEFT(E8,1))),"True","False") 
+0

Das ist perfekt. Vielen Dank! Ich habe nicht einmal daran gedacht, die "VALUE" -Funktion zu verwenden. –

0
=IFERROR(IF(VALUE(LEFT(E8,1)),"TRUE","FALSE"),"FALSE") 
1

Beachten Sie, dass Sie erreichen, was Sie mit nur die benötigen folgende:

=NOT(ISERROR(LEFT(E8)*1)) 

Wenn Sie nicht LEFT(E8) durch 1-LEFT(E8,1) und Multiplikation auswertet wirft einen Fehler auf alles nicht-numerische

Wenn Sie Ihre Ausgabe als Strings dann nach unten aktualisieren:

IF(NOT(ISERROR(LEFT(E8)*1)),"True","False") 

EDIT

Mit ISNUMBER() ist eine gute Alternative zu NOT(ISERROR())

=ISNUMBER(LEFT(A1)*1) 
=IF(ISNUMBER(LEFT(A1)*1),"True","False") 
0

Mit der IF-Anweisung überflüssig ist. Die einfachste und effektivste Weg, um Ihr gewünschtes Ergebnis zu erzielen ist:

=ISNUMBER(--LEFT(E8,1)) 

Es wird automatisch TRUE oder FALSE zurück