Am 12.12.2018 um 10:59 schrieb technik_...@jrsch.de: > Hallo, > > > ich habe aus einer csv Tabelle Texte und Zahlen und möchte die in die > Tabelle einfügen als String oder value.
> Zum Erkennen habe ich die Funktion val() gewählt. Von welchem Modul redest du? Mir ist weder in Calc noch im Writer eine Funktion namens VAL bekannt. In Calc gibt es allerdings eine Funktion WERT (englisch VALUE), meinst du vielleicht die? > Wenn der Anfang eine > Zahl ist, ergibt das <>0 und es wird der Wert untersucht. WERT liefert den Wert 0, wenn keine Zahl (als echter Zahlwert oder als Stringanfang) erkannt werden kann. Allerdings wird diesen Wert natürlich auch dann zurück gegeben, wenn wenn dort eine 0 steht. > (manche Werte sind dann datumsangaben oder es folgt noch weiteres usw.) > Ein String ergibt 0. > > Ein Wert macht Probleme: Leider gibt > > a=val("74E65390K815507ID") > > kein Ergebnis sondern einen Fehler. Mir kommt ein furchtbarer Verdacht; meinst du etwa das Basic-Modul? Da gibt es diese Funktion, ja. Aber Dein Problem ist in dem Fall wohl weniger die Funktion, als vielmehr der Wert selbst. Die Zahl "74E65390" ist die wissenschaftliche Darstellung der Zahl 74 x 10^65390, Also eine Zahl mit 65390 Stellen (bzw. sogar mit 65391 Stellen, da die Mantisse regelwidrig mehr als eine Vorkommastelle enthält). Calc, Basic usw. können aber nur mit einem Wertebereich zwischen +/+ 10^308 arbeiten. Dieser Wert liegt also weit, weit, gaaanz weit jenseits von gut und böse. > ich habe es durch b=val(left(a,2)) ersetzt. Aber mich interessiert, > warum das einen Fehler ergibt und ob es eine andere Möglichkeit auf > Prüfung auf Zahl gibt. Die erste Wahl wäre natürlich ISNUMERIC; allerdings ist das nur TRUE, wenn wirklich eine Zahl übergeben wird (auch in wissenschaftlicher Darstellung). Ein String, der mit einer Zahl beginnt, liefert FALSE. Und diese Funktion erkennt auch genau so wenig, ob die Zahl überhaupt im gültigen Wertebereich (s. o.) liegt. Um dir weitere Hilfe anbieten zu können, müsstest du schon genau beschreiben, was du als Eingangsdaten alles hast, und v. a. was genau du bei welchen Werten ausgelesen bekommen möchtest. Du erwähnst z. B., dass u. a. auch Datumsangaben möglich seine, sagst aber nicht, ob die als Datum oder als Zahl (dann halt Tag und Monat als Dezimalzahl mit Nachkommastellen) eingelesen werden sollen. Grundsätzlich fürchte ich aber, du wirst um eine etwas [tm] aufwendigere Untersuchung nicht umhin kommen können. Ob dann Fallunterscheidungen, eine Loop oder sogar RegEx (oder eine Kombination daraus) die beste Lösung sein werden, kann ich mit /den/ paar wenigen Infomationen nicht beurteilen. Wolfgang -- Durch Donald Trump ist mir endgültig klar geworden: Es ist nicht der Turm von Pisa, der schief steht, es ist die Welt! --------------------------------------------------------------------- To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org For additional commands, e-mail: users-de-h...@openoffice.apache.org