You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@openoffice.apache.org by "technik_div@jrsch.de" <te...@jrsch.de> on 2018/12/12 09:59:52 UTC

Problem mit val() zur Erkennung einer Zahl

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. Wenn der Anfang eine 
Zahl ist, ergibt das <>0 und es wird der Wert untersucht.

(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.

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.


Horst



---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org


Re: Problem mit val() zur Erkennung einer Zahl

Posted by Wolfgang Jäth <ja...@arcor.de>.
Am 12.12.2018 um 10:59 schrieb technik_div@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-unsubscribe@openoffice.apache.org
For additional commands, e-mail: users-de-help@openoffice.apache.org